Power distribution, management, and monitoring systems and methods

ABSTRACT

Managing electrical power usage in a power distribution system. Power usage data indicative of electrical current flow through electrical outlets in the system are collected and displayed for a user. The user may select an outlet and issue a command to control current flow through that outlet. Environmental data may also be collected and displayed. Outlets in different Cabinet Power Distribution Units (CDUs) in different locations may be clustered for reporting and control. A database structure provides a “system” table for data descriptive of the system, a “tower” table for data descriptive of outlets and other elements in the system, an “infeed” table for data descriptive of input electrical power, and an “outlet” table for data descriptive of electrical power flowing through the outlets.

CROSS-REFERENCE TO RELATED APPLICATION(S)

This application is a continuation of U.S. patent application Ser. No.13/949,107, filed Jul. 23, 2013, entitled “POWER DISTRIBUTION,MANAGEMENT, AND MONITORING SYSTEMS AND METHODS,” which is a division ofU.S. patent application Ser. No. 12/344,419, filed Dec. 26, 2008, nowU.S. Pat. No. 8,494,661, entitled “POWER DISTRIBUTION, MANAGEMENT, ANDMONITORING SYSTEMS AND METHODS,” which claims the benefit of U.S.Provisional Patent Application No. 61/017,511, filed Dec. 28, 2007,entitled “POWER DISTRIBUTION UNIT WITH INPUT AND OUTPUT POWERMONITORING,” U.S. Provisional Patent Application No. 61/017,495, filedDec. 28, 2007, entitled “POWER DISTRIBUTION UNIT WITH OUTPUT CURRENTSENSING CAPABILITY,” U.S. Provisional Patent Application No. 61/009,463,filed Dec. 28, 2007, entitled “REMOTE POWER MANAGER,” and U.S.Provisional Patent Application No. 61/207,853 filed Dec. 2, 2008,entitled “POWER DISTRIBUTION, MANAGEMENT, AND MONITORING SYSTEMS,” thedisclosures of which are hereby incorporated by reference in theirentireties.

This application is related to U.S. Pat. No. 5,949,974, issued Sep. 7,1999, entitled “SYSTEM FOR READING THE STATUS AND FOR CONTROLLING THEPOWER SUPPLIES OF APPLIANCES CONNECTED TO COMPUTER NETWORKS,” U.S. Pat.No. 6,711,613, issued Mar. 23, 2004, entitled “REMOTE POWER CONTROLSYSTEM,” and U.S. Pat. No. 8,570,652, issued Oct. 15, 2013, entitled“REMOTE POWER CONTROL SYSTEM,” the disclosures of which are herebyincorporated by reference in their entireties.

TECHNICAL FIELD

The present disclosure is directed to power distribution, management,and monitoring systems, and more particularly, to systems havingcapability to monitor and manage power as related to one or more loadsthat receive power from power distribution unit(s) including loads thatreceive power from multiple or different power distribution units.

BACKGROUND

Power distribution units have long been utilized to supply power toelectronic equipment. A conventional power-distribution unit (PDU) is anassembly of multiple electrical “outlets” (also called “receptacles”)that receive electrical power from a source and distribute theelectrical power via the outlets to one or more separate electronicequipment units having respective power cords plugged into respectiveoutlets of the PDU. PDUs can also have power cords hard wired to a powersource instead of, or in addition to, outlets. PDUs can be used in anyof various applications and settings such as, for example, in or onelectronic equipment racks, among other applications. A PDU located in acabinet may be connected to other PDUs or to other devices such asenvironmental monitors, for example temperature and humidity sensors;fuse modules; communications modules; and the like. Such a PDU and anyother PDUs and other devices to which it is connected are commonlyenclosed within an equipment rack or equipment cabinet and collectivelyreferred to as a Cabinet Power Distribution Unit (CDU).

Electronic equipment racks, such as standard RETMA racks, commonlycomprise rectangular or box-shaped housings sometimes referred to as acabinet or a rack and associated components for mounting equipment,associated communications cables, and associated power distributioncables. Electronic equipment is commonly mountable in such racks so thatthe various electronic devices are aligned vertically one on top of theother in the rack. Often, multiple such racks are oriented side-by-side,with each containing numerous electronic components and havingsubstantial quantities of associated component wiring located bothwithin and outside of the area occupied by the racks. Such rackscommonly support equipment that is used in a computing network for anenterprise, referred to as an enterprise network.

Enterprise networks exist to support large world-wide organizations anddepend on a combination of technologies, e.g., data communications,inter-networking equipment (frame relay controllers, asynchronoustransfer mode (ATM) switches, routers, integrated services digitalnetwork (ISDN) controllers, application servers), and network managementapplication software. Such enterprise networks can be used to support alarge company's branch offices or campuses throughout the world, and, assuch, these networks have become mission critical to the functioning ofsuch organizations. Masses of information are routinely expected to beexchanged, and such information exchanges are necessary to carry on thedaily business of modern organizations. For example, some internationalbanks have thousands of branch offices placed throughout Europe, Asiaand North America that each critically depend on their ability tocommunicate banking transactions quickly and efficiently with oneanother and with their respective headquarters.

A typical enterprise network uses building blocks of router and framerelay network appliances mounted in equipment racks. Such equipmentracks are distributed to remote point of presence (POP) locations in theparticular network. Each equipment rack can include frame relaycontrollers, routers, ISDN controllers, servers and modems, etc., eachof which are connected to one or more power sources. The value of POPequipment can range from $200,000 to $500,000, and the number ofindividual devices can exceed a thousand.

A relatively large number of equipment racks are located in one or moredata centers that act as hubs for data communications for an enterprise.Conventional network management technologies provide relatively littleinformation related to the electrical power consumption and/or status ofdata centers, various equipment racks within data centers, or ofparticular components associated with equipment racks. Energyconsumption of data centers can be a source of significant costs for anenterprise, and increasing energy efficiency of data centers couldprovide a significant cost savings for an enterprise.

SUMMARY

In various embodiments, systems and methods are provided that sense andoutput the power used by various different components and/orapplications, including monitoring both the input power of a powerdistribution unit (PDU) and/or cabinet distribution unit (CDU) and thepower output to various components powered one or more PDUs/CDUs. Forexample, to determine total IT Equipment Power (Watts), power for eachcomponent may be combined. The sum of all the ‘power cord Watts’measures the IT Equipment Power consumed by the IT assets (assuming allIT assets are plugged into a PDUs/CDUs having the ability to measureWatts).

In an aspect of the present disclosure, provided is a power managementsystem, comprising (i) a communications interface that sends/receivescommunications to/from at least two cabinet distribution units (CDUs),the communications received from the CDUs including power usage data foreach of two or more electrical outputs within each CDU; (ii) a memorythat stores information related to electrical components that receivepower from one or more of the electrical outputs; and (iii) a controllerinterconnected to the communications interface and memory that receivesthe power usage data from the CDUs, determines power that is consumed byone or more of the electrical components, outputs information related topower that is consumed by one or more of the electrical components, andcommunicates with the CDUs through the communications interface tocontrol current flow through one or more selected outlets.

The communications interface, in one embodiment, sends/receivescommunications to/from the CDUs through TCP/IP with a unique IP addressfor each CDU. In an aspect, the memory comprises information related toat least a first electrical component that receives power from at leasta first and a second electrical output, the first output located at afirst CDU and the second output located at a second CDU. The controllerin such an aspect determines power that is consumed by the firstelectrical component by combining power usage data for the first andsecond outputs of the first and second CDUs. The memory may also includeinformation related to at least a first application that runs on aplurality of electrical components that receive power from a pluralityof different CDUs, and the controller determines power that is consumedby the plurality of electrical components that are running the firstapplication by combining power usage data for the power outputs of theplurality of electrical components.

The memory, in various embodiments, comprises: (i) a system tablestructured for data descriptive of a power distribution system; (ii) atower table structured for data descriptive of outputs, CDUs and otherelements in the power distribution system; (iii) an infeed tablestructured for data descriptive of electrical power provided to theCDUs; and (iv) an outlet table structured for data descriptive ofelectrical power flowing through various outputs. In other embodiments,the communications interface receives communications related to one ormore environmental sensors located in one or more CDUs, and the memoryfurther comprises an environmental table structured for data descriptiveof environmental parameters associated with the environmental sensors.In other embodiments the memory further comprises a clusters tablestructured for data descriptive of output clusters that include outputslocated in two or more different CDUs that provide power to oneelectrical component or one application. The clusters table may comprisea table structured for cluster identifiers, and a table structured fordata correlating outlets with clusters.

Another aspect of the disclosure provides a method of managingelectrical power usage in a power distribution system that includes aplurality of electrical outlets, the method comprising: (i) collectingpower usage data indicative of electrical current flow through each of aplurality of the electrical outlets in the system; (ii) correlating thepower usage data with electrical components that receive power from eachof the plurality of electrical outlets; (iii) outputting power usagedata for each of the electrical components; (iv) receiving a command tocontrol current flow through a selected outlet; and (v) controllingcurrent flow through the selected outlet responsive to the command.Controlling current flow through an outlet may be accomplished byturning the outlet on or off. The method may also include receiving auser-initiated command to reboot control circuitry associated with anelectrical component that receives power from one or more of the outletsand rebooting the control circuitry responsive to the command. In someembodiments, the method includes collecting environmental dataindicative of environmental conditions of the electrical outlets, andoutputting the environmental data. The environmental data may comprisetemperature and humidity. In other embodiments, the method furthercomprises generating a report descriptive of a power usage trend. Instill further embodiments, the method further comprises assigning eachoutlet in any one location to a cabinet distribution unit (CDU) in thatlocation, associating at least one unique IP address with each locationhaving one or more CDUs, and collecting power usage data respecting anoutlet by communicating via the Internet with the IP address associatedwith the CDU containing that outlet. The method may also compriseassigning a plurality of outlets in a CDU having one IP address and aplurality of outlets in a CDU having another IP address to a cluster;displaying a status of the cluster; receiving a user-initiated commandto control current flow through all outlets in a cluster selected by theuser; and controlling current flow through all outlets in theuser-selected cluster responsive to the command.

Also described herein are several exemplary embodiments of power outletmodules and methods for distributing power to one or more electroniccomponents, such as electronic components mounted within an electronicequipment rack. The power outlet modules can include outlets, which mayinclude plug type outlets, to which power cords of electronic equipmentcan be coupled and through which power is transmitted from the poweroutlet modules to the electronic equipment. As used herein, the terms“outlet” and “receptacle” may be used interchangeably. In someembodiments, the power outlet modules include power monitoringcomponents located at one or more outlets. The power monitoringcomponents may report the power that is delivered to individualelectronic components through the attached power cord at a respectiveoutlet. In other embodiments, the power outlet modules include powermonitoring components at the input power source, and at one or moreoutlets.

The power monitoring components, in various embodiments, include toroidsinterconnected with one or more outlets of a power distribution unit.The toroids provide information related to the current that is beingconducted through a particular outlet. The current information, alongwith voltage and phase information, may be used to determine the powerthis is being consumed through the output. In some embodiments, eachtoroid in a power distribution unit is interconnected with a powerreporting circuit that is interconnected to a power distribution unit.The power reporting circuit may, however, be included in a power outletmodule. In any event, the controller may provide power consumptioninformation related to one or more of the outlets of the power outletmodule to other external components and systems.

It is to be understood that the foregoing is a brief description ofvarious aspects of various embodiments. It is therefore also to beunderstood that the scope of the invention is to be determined by theclaims as issued and not by whether given subject matter includes any orall such features or advantages or addresses any or all of the issuesnoted herein.

In addition, there are other advantages and varying novel features andaspects of differing embodiments. The foregoing and other features andadvantages will become more apparent from the following detaileddescription, which proceeds with reference to the accompanying figures.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram illustration of equipment related to a datacenter.

FIG. 2 is a block diagram illustration of a system of an exemplaryembodiment of the present disclosure.

FIG. 3 is a block diagram illustration of an input current and voltagesensing system of an exemplary embodiment.

FIG. 4 is a block diagram illustration of an input current and voltagesensing system of another exemplary embodiment.

FIG. 5 is a block diagram illustration of a per output current andvoltage sensing system of an exemplary embodiment.

FIG. 6 is a block diagram illustration of a per output current andvoltage sensing system of another exemplary embodiment.

FIG. 7 is a block diagram illustration of a per output current andvoltage sensing system of another exemplary embodiment.

FIG. 8 is a schematic illustration of an output circuit of an exemplaryembodiment.

FIG. 9 is a schematic illustration of a relay circuit of an exemplaryembodiment.

FIG. 10 is a schematic illustration of a current sensing circuit of anexemplary embodiment.

FIG. 11 is a schematic illustration of a voltage sensing circuit of anexemplary embodiment.

FIG. 12 is a schematic illustration of a power sensing circuit of anexemplary embodiment.

FIG. 13 is an illustration of an exemplary environment in which variousembodiments may be practiced.

FIG. 14 is an illustration of a three printed circuit board PDU assemblyof an embodiment.

FIG. 15 is an illustration of a single printed circuit board PDUassembly of an embodiment.

FIG. 16 is a flow chart illustrating a method of an embodiment.

FIG. 17 is a screen shot illustrating a user interface of an embodiment.

FIG. 18 is a block diagram of an exemplary computing system capable ofimplementing one or more of the embodiments described and/or illustratedherein.

FIG. 19 is a block diagram of an exemplary computing network capable ofimplementing one or more of the embodiments described and/or illustratedherein.

FIG. 20 shows an interconnection of two PDUs into a group.

FIG. 21 shows interconnections of several PDUs into groups and clusters.

FIG. 22 is a screen shot of an opening screen in an embodiment of theinvention.

FIG. 23 is a screen shot of a group or cluster name screen.

FIG. 24 is a block diagram of a power management system embodyingaspects of the invention.

DETAILED DESCRIPTION

Embodiments of power distribution, monitoring, and management systemsare described herein. Embodiments of such systems include a powerdistribution plugstrip, power distribution unit (PDU), and cabinetdistribution unit (CDU) with power determination and monitoringcapability. The present disclosure recognizes that capability todetermine the power being delivered to a power distribution apparatus,and to determine the power being delivered from the power distributionapparatus to one or more electrical loads can enable efficientdetermination of power usage for various different components that areassociated with a facility, and therefore provide ability to managepower to the various different components. In many cases, numerous PDUsand/or CDUs may be located in a facility, with each supplying power toseveral different electrical loads. Knowledge of power being deliveredto various equipment in a facility may be used to evaluate, improve, andmanage power consumption in a facility and across multiple facilities,such as data centers.

Such management of power may improve efficiency of power consumption atdata centers as measured by one or more power usage metrics. Oneavailable measure of power usage efficiency for data centers is providedthrough a metric known as Power Usage Effectiveness (PUE) and DataCenter Efficiency (DCE). Such metrics enable data center operators toestimate the energy efficiency of their data centers, compare theresults against other data centers, and determine if any energyefficiency improvements may be desirable.

Data center power and cooling are two significant issues facing ITorganizations, and many entities desire to control these costs whileenabling future expansion. With more energy efficient data centers,enterprises and/or IT organizations can better manage increasedcomputing, network, and storage demands, lower energy costs, and reducetotal cost of ownership (TCO).

As mentioned above, metrics may be used to determine information relatedto data center power usage, including PUE and DCE. Both of these metricsprovide a relationship between equipment power and total facility power.Total facility power is used to refer to the total power that isconsumed by a data center. In the event that a data center is housed ina building that houses other functions addition to a data center or thathouses more than one data center, the total facility power is the powerthat is used by the data center that is of interest rather than thepower consumed by other uses than the data center of interest. FIG. 1illustrates computing equipment that may contribute to total facilitypower. The PUE is defined as follows:

PUE=(Total Facility Power)/(Computing Equipment Power)

The DCE is the reciprocal of the PUE, and is defines as follows:

DCE=(Computing Equipment Power)/(Total Facility Power)

With continuing reference to FIG. 1, the computing equipment power isthe power required to operate the data center equipment that is used tomanage, process, store and/or route data within a data center. Thisincludes the load associated with equipment, such as computer, storage.and network equipment, along with supplemental equipment such as KVMswitches, monitors, and workstations used to monitor or otherwisecontrol the data center. Total facility power is used to refer toeverything that supports the data center equipment load such as powerdelivery components, cooling system components, computer nodes, networknodes, and storage nodes, and other component loads such as data centerlighting and other ancillary equipment. Power delivery componentsinclude various components, such as UPS, switch gear, generators, PDUs,batteries, and distribution losses external to the IT equipment. Coolingsystem components can also include various components such as chillers,computer room air conditioning units (CRACs), direct expansion airhandler (DX) units, pumps, and cooling towers.

The PUE and DCE metrics provide a way to determine opportunities toimprove data center operational efficiency, how a particular data centercompares with other data centers, and opportunities to repurpose energyfor additional computing equipment, to name but a few. While both ofthese metrics are related, they can be used to illustrate the energyallocation in a data center differently. For example, if a PUE isdetermined to be 3.0, this indicates that the data center demand isthree times greater than the energy necessary to power the computingequipment located within the data center. In addition, the ratio can beused as a multiplier for calculating the real impact of power demands.For example, if a server demands 500 watts and the PUE for thedatacenter is 3.0, then the power from the utility grid needed todeliver 500 watts to the server is 1500 watts. The DCE, in comparison,may provide a different aspect of this information, a DCE value of 0.33(equivalent to a PUE of 3.0) suggesting that the computing equipmentconsumes 33% of the power in the data center. As will be readilyobserved, PUE can range from 1.0 to infinity, with a PUE value of 1.0indicating 100% efficiency (i.e., all power used by computing equipmentonly), and a large PUE indicating that computing equipment uses arelatively small amount of the total power entering the data center.

In FIG. 1, total facility power is measured at or near the facilityutility meter(s) to accurately reflect the power entering the datacenter. This represents the total power (for which the utility charges)consumed in the data center. In order to obtain accurate and meaningfulpower information, the data center power is either measured or otherwisecalculated because power not intended to be consumed in the data centerwould result in inaccurate PUE and DCE metrics. For example, if a datacenter resides in an office building, total power drawn from the utilitywill be the sum of the total facility power for the data center and thetotal power consumed by the non-data center offices. In some situations,the total facility power for a particular data center is required to beestimated or measured in another manner than through a utility powermeter. Computing equipment power should be measured after all powerconversion, switching, and conditioning is completed, and before thecomputing equipment itself, in order to gain meaningful information. Invarious embodiments disclosed herein, power delivered to computingequipment is measured at the output of the computer room powerdistribution units (PDUs).

Within a data center, it also may be desirable to measure data centerperformance. One metric that may be used to measure data centerperformance is referred to as Data Center Performance Efficiency (DCPE).The DCPE is defined as:

DCPE=(Useful Work)/(Total Facility Power)

This metric effectively defines the data center as a box and a netamount of useful work is done by the box.

Additionally, additional granularity may be desired related to powerusage within a data center. For example, a PUE metric may be broken downinto the following: PUE=Cooling Load Factor (CLF)+Power-Load Factor(PLF)+1.0. All factors are ratios that are divided by the computingequipment load and 1.0 represents the normalized computing equipmentload. Cooling Load Factor (CLF) is the total power consumed by chillers,cooling towers, computer room air conditioners (CRACs), pumps, etc.,normalized by the computing equipment load. The Power Load Factor (PLF)is the total power dissipated by switch gear, uninterruptible powersupplies (UPSs), power distribution units (PDUs), etc., normalized bythe computing equipment Load.

Individual components may be measured in order to determine variousinformation related to power efficiency metrics. In various embodimentsdescribed herein, equipment power is determined for various individualcomponents, and this information provided to determine power usagerelated to that equipment. In various embodiments, a PDU is providedthat senses and outputs the power used by various different components,including monitoring both the input power of the PDU and the poweroutput to various components powered by the PDU. For example, todetermine total computing equipment power (Power is (Volts×Amperes) orWatts) a PDU may measure Watts for each input cord to the PDU(s), or theinput power at various subcomponents that provide power to one or morepieces of computing equipment. The sum of all the power output to piecesof equipment measures the total computing equipment power consumed bythe computing equipment assuming all computing equipment assets areplugged into a PDU having the ability to measure power.

In other embodiments, an individual piece of computing equipmentefficiency is determined according to MIPS/Watts. MIPS, as is wellknown, is Million Instructions Per Second, and is a measure of the speedof execution of a processor. Thus, a performance efficiency for aserver, for example, may be measured and a cumulative efficiencycalculated for all equipment in a data center. In embodiments thatprovide such metrics, each outlet measures power that is delivered fromthe outlet. The MIPS value may be read, for example, from the BIOS forthe specific asset and provide a measure of performance efficiency. Thesum of all the ‘per outlet Watts’ on a PDU may be used to measure thePDU's efficiency when compared to the input cord power to the PDU. Insome embodiments, an individual piece of equipment may receive operatingpower from multiple power supplies. In such embodiments, the outletsthat provide power to the piece of equipment are grouped with power fromeach outlet summed to provide the corresponding power measurement forthe specific asset that is acquiring it power from multiple PDUs ormultiple power supplies. Other embodiments provide the ability for anexpense charge for the power consumed by each specific asset, and eachoutlet may record the amount of power used (Watts/hours) in the samemanner as a utility meter.

With reference now to FIG. 2, a block diagram of an exemplary system ofan embodiment is now described. A power distribution unit (PDU) 20 isprovided that supplies power to one or more associated computing assets.The PDU 20 may be a stand-alone device or incorporated with othercomponents or modules to form a cabinet distribution unit (CDU) whichincludes, for example, fuse modules, environmental monitors,communications modules, other PDUs, etc. The PDU is useable in acomputer network 24, and may communicate over the computer network 24with a network power manager application 28. In cases where the PDU 20is included in a CDU, communication with network power manager 28 isconducted through a communications module within the CDU. The networkpower manager 28 may reside in a workstation or other device that isused in the management of a data center or other enterprise management,and issues network commands over a network communications connection.The PDU 20 of this embodiment includes a power supply 32, a networkinterface card (NIC) 34 that has application firmware and hardware thatinterfaces to network the PDU 20 with other modules within a CDU, and inthis embodiment includes a power manager agent application 36. The PDU20 includes a plurality of power outlets 40 arranged in a powerdistribution plugstrip, and an intelligent power module (IPM) 44. TheIPM 44, NIC 34, and power manager agent 36 are connected to the computernetwork 24. The intelligent power module 24 controls the application ofpower from the input power to a corresponding power outlet among thepower outlets 40, and is in communication with the power manager agentapplication 36 to provide power and power cycling on-off for one or moreof the corresponding power outlets. The IPM 44 may also provide powerstate sensing and/or load-sensing with respect to the correspondingpower outlet in response to one or more commands. The IPM 44 in thisembodiment includes a microprocessor 48 used to control the powerapplied to a corresponding power outlet. The microprocessor also isconnected to a voltage sensing device 52 and a current sensing device 56to sense the voltage and current at corresponding individual poweroutlet(s). The microprocessor 48 uses this information to determine thepower supplied to an outlet, as will be described in more detail below.The microprocessor 48 also receives a power measurement from the inputpower supply 32 through an input voltage sensing device 60 and an inputcurrent sensing device 64.

The network power manager 28 of FIG. 2 communicates with the powermanager agent 36 and IPM 44. The network power manager 28 may receiveinformation from, and provide instructions to, the IPM 44 and powermanager agent 36. The network power manager 28 may also receive relatedpower measurements from the IPM 44 and report power information relatedto the PDU 20, and related to one or more individual outlets (and thuspower information for individual assets powered by the outlet) of thePDU 20. FIG. 3 is an illustration of a CDU 65 that includes PDUs 20,along with a communications module 66 that provides communicationsfunctions, an environmental monitor 68, and an input power cord 70 withassociated plug 72. The PDUs 20 each include eight outlets 202-216 thatsupply power to assets that may be mounted into an equipment rack. Suchequipment racks are well known, and often include several individualassets that are used in operation of a data center. The CDU 65, asillustrated in FIG. 3, is configured to be vertically mounted in anequipment rack. As is well known, numerous equipment racks may beincluded in a data center, and in various embodiments each asset in eachequipment rack may be monitored for power usage through one or moreassociated PDUs 20.

With reference now to FIG. 4, a block diagram illustration of an inputpower sensing system is described for an exemplary embodiment. An inputpower source 100 can be either single or polyphase, with a polyphasethree-phase power input illustrated in FIG. 4. Toroidal transformers 104are located such that a power lead (L1, L2, and L3) from each of thethree phases is routed through a toroidal transformer 104, and providecurrent sensing to output a present current level for the associatedpower lead L1, L2, and L3. These toroidal transformers 104 areelectrically attached at voltage taps 108 between the phases that areconnected to an power measurement circuit 112. The voltage taps 108include a resistor divider and an amplifier to determine a line voltagefor the particular phase that is provided to the power measurementcircuit 112. The power measurement circuit 112, in an exemplaryembodiment, includes a serial output 116 that is in optical isolatedcommunication with a microcontroller 120 that will communicate powerinformation from the power measurement circuit 112, via a communicationsbus to a network communications board within the IPM. The IPM then makesthis information available to a remote or local user via a network powermanager. In one embodiment, isolation is required between the energymeasurement chip 112 that is referenced to line voltage, and themicrocontroller 120, that is required to be referenced to non-hazardousvoltage. In this embodiment, a high side power supply 124 and a low sidepower supply 128 supply power to respective sides of the isolation, andare isolated from each other.

Referring now to FIG. 5, another exemplary embodiment of an input powermonitor is described. This embodiment provides a discrete digitizedsolution. A power source 150 can be either single or polyphase, with athree-phase polyphase power supply illustrated. A toroidal transformer154 is located such that a power lead (L1, L2, and L3) from each of thethree phases is routed through the toroidal transformer 154, and providecurrent sensing. These toroidal transformers 154 along with voltage taps158 between the phases are connected to a single microcontroller 180that performs the power calculation operations. In the illustratedembodiment, isolation of the line side (high voltage) sensing circuitsfrom the low voltage microcontroller 180 is provided, such that useraccessible communications ports do not have high voltages present. Thisisolation is provided by the isolation amplifiers within voltage taps158. A first high side power supply 184 and a second high side powersupply 188 supply power to respective components on the line side of theisolation.

With reference now to FIG. 6, a block diagram illustration of outputpower reporting components is now described for an exemplary embodiment.In this embodiment, the PDU includes a power outlet plugstrip 200, alsoreferred to as a power outlet module 200, that includes eight poweroutlets, 202-216. Each outlet 202-216 is connected to power lines L1 andL2 and to power source 32. In this embodiment, the power line L1 frompower source 32 is connected to line power in the power source 32, andthe power line L2 is connected to neutral in the power source 32. Eachoutlet 202-216 is also interconnected to a ground in the power source32, although this line connection from the outlets 202-216 is notillustrated in FIG. 6. Each outlet 202-216, in this embodiment, has anassociated toroidal transformer 202 a-216 a that is used to sense thecurrent that is flowing through the line L1 for each respective outlet202-216. The line L1 interconnected to each outlet 202-216 is wiredthrough the respective toroid 202 a-216 a. The toroidal transformers 202a-216 a each have a current reporting line 202 b-216 b that providesinstantaneous current information related to the respective toroidaltransformer 202 a-216 a to microcontroller 220. The microcontroller 220receives this current information related to each respective outlet202-216. The power outlet module 200 also includes a line voltagedetector that includes a voltage dropping resistor network 224, and anopto-isolated operational amplifier 228, and provides in indication ofinstantaneous line voltage for the power source 32. The line voltagedetector, in other embodiments, includes a voltage sense transformerthat provides isolation and allows voltage to be determined based on thevoltage across the transformer and the turns ratio of the transformer.The microcontroller uses the current information related to each of therespective outlets 202-216, along with the line voltage to calculate thepower being consumed through the individual outlets 202-216. Thisinformation may be communicated to the IPM and/or other componentsthrough communications link 230 through, for example, a communicationsbus.

In one embodiment, the power outlet module 200 includes eight outlets(202-216) each of NEMA 5-20R type, contained in a housing. It will beunderstood that this embodiment, and other embodiments described hereinas having NEMA 5-20R type outlets, are exemplary only and that any ofvarious other types of outlets alternatively can be used. For example,the “outlets” can be other NEMA types (e.g., NEMA 5-15R, NEMA 6-20R,NEMA 6-30R or NEMA 6-50R) or any of various IEC types (e.g., IEC C13).It also will be understood that all the “outlets” in a particular poweroutlet module 200, or other module-outlet described herein, need not beidentical. It also will be understood that the “outlets” are not limitedto three-prong receptacles; alternatively, one or more of the “outlets”can be configured for two or more than three prongs in the mating maleconnector. It also will be understood that the “outlets” are not limitedto having female prong receptacles. In any “outlet,” one or more of the“prong receptacles” can be male instead of female connection elements,as conditions or needs indicate. In general, as used herein, female andmale “prong receptacles” are termed “power-connection elements.”Furthermore, the principles described herein also are applicable todevices that may be hard-wired into an outlet module. While outletmodule 200 of this embodiment includes eight outlets, it will beunderstood that this is but one example and that an outlet module mayinclude a different number of outlets.

The housing for an outlet module may be any suitable housing for such adevice, as is known to one of skill in the art, and illustrated, forexample in FIG. 3. Such a housing generally includes a front portion anda rear portion, the front portion is substantially planar, and the rearportion is substantially planar and parallel to the front portion. Thehousing also includes longitudinally extending side portions andtransverse end portions. The front portion, rear portion, side portions,and end portions are generally orthogonal to each other in a generallyrectangular or box-type configuration. The housing can be made of anysuitable, typically rigid, material, including, for example, a rigidpolymeric (“plastic”) material. In at least certain embodiments, thefront and rear portions are made from an electrically insulativematerial. The side portions and the end portions may be integrallyformed, optionally along with the front portion or the rear portion.Furthermore, while the outlet module described in this embodimentincludes a housing, other embodiments may include an outlet module thatdoes not include a housing. For example, an outlet module may include anumber of outlets coupled together with no exterior housing that maythen be installed into another piece of equipment.

Each outlet 202-216 is interconnected to the power source 32 through anyof a number of well known connection schemes, such as spade, lug, plugconnectors, screw connectors, or other suitable type of connector.Furthermore, if desired, one or more of these electrical connectors canbe located inside the housing or outside the housing, in embodimentswhere the power outlet module includes a housing.

The microcontroller 220, in an embodiment, receives information for eachoutlet 202-216, along with voltage information and calculates poweroutput per outlet, with this information reported through thecommunications link 230. The power per outlet is determined bymultiplying the instantaneous voltage by the instantaneous current for aparticular outlet, and integrating this product against time to giveenergy used (kilowatt hours, etc.) In an embodiment, the microcontrollercomputes the RMS watts for each respective outlet 202-216 by multiplyingthe RMS voltage by the RMS current. RMS current and voltage, in anembodiment, are calculated per AC cycle. In this embodiment, themicrocontroller 220 includes eight current input channels, one peroutlet, which are electrically connected to the toroidal transformers.In this embodiment, the microcontroller includes ADC inputs thatdigitize the analog signal from toroidal transformers 202 a-216 a. Themicrocontroller 220 then performs power computations based on the ADCinput for a particular output and the voltage information.

With reference now to FIG. 7, a block diagram illustration of a poweroutlet module 300 with associated power reporting components is nowdescribed for another exemplary embodiment. Similarly as in theembodiment of FIG. 6, the power outlet module 300 of the embodiment ofFIG. 7 includes eight power outlets, 302-316. Each outlet 302-316 isconnected to power lines L1 and L2 and to power source 318. Power source318 may be, for example, a standard 120V power feed, or may be aparticular phase of a polyphase power source. In one embodiment, thepower line L1 from power source 318 is connected to line power in thepower source 318, and the power line L2 is connected to neutral in thepower source 318. Each outlet 302-316 is also interconnected to a groundin the power source 318, although this line connection from the outlets302-316 is not illustrated in FIG. 7. Each outlet 302-316, in thisembodiment, has an associated toroidal inductor 302 a-316 a that is usedto sense the current that is flowing through the line L1 for eachrespective outlet 302-316. The line L1 interconnected to each outlet302-316 is wired through the respective toroidal inductor 302 a-316 a.The toroidal inductors 302 a-316 a each have a current reporting line302 b-316 b that provides instantaneous current information related tothe respective toroidal inductor 302 a-316 a to metering integratedcircuit 320. The metering integrated circuit 320 receives this currentinformation related to each respective outlet 302-316. The power outletmodule 300 also includes a line voltage detector that includes a voltagedropping resistor network 324, and an opto-isolated operationalamplifier 328, and provides in indication of instantaneous line voltagefor the power source 318 to the metering integrated circuit 320.Similarly as described above, the line voltage detector in otherembodiments includes a voltage sense transformer that provides isolationand allows voltage to be determined based on the voltage across thetransformer and the turns ratio of the transformer. The meteringintegrated circuit 320 uses the current information related to each ofthe respective outlets 302-316, along with the line voltage to calculatethe power being consumed through the individual outlets 302-316. Thisinformation is transferred to a microcontroller 330, which maycommunicate with other external components through communications link332 through, for example, a communications bus. Each of the outlets302-316, similarly as in the embodiment of FIG. 6, may be connected tothe power source 32 through electromechanical relays, with each operableto monitor and/or control the power transmitted to a respectiveindividual outlet.

In the embodiment of FIG. 7, a metering integrated circuit 320 isconnected to each of the toroidal inductors 302 a-316 a and the voltagedropping resistor network 324 and operational amplifier 328. Themetering integrated circuit 320 performs various power calculations foreach outlet based on RMS current and voltage values. The meteringintegrated circuit 320 provides this information, in the form of RMSpower information, to microcontroller 330. In this manner, discretecomponents are used for determining power consumption of each outlet andfor providing this information to various external components. Such anembodiment may be desirable in applications where specific meteringrequirements are desired and a metering integrated circuit that isspecifically designed for power metering provides such requirements. Forexample, the power outlet module 300 may be installed into a PDU systemthat provides power to a number of different electronic components thatare used in a computing network. In some applications, for example, thecost for providing power to a specific component may be billed to anentity. In such applications, it may be desirable to have a dedicatedmetering integrated circuit to provide power consumption data. It alsomay be desirable for computing network managers, such as informationtechnology (IT) personnel, to monitor the power used by variousdifferent individual components, and the described power outlet modulesmay provide such reporting functionality.

The metering integrated circuit 320, in this embodiment, receivesinformation for each outlet 302-316, along with voltage information andcalculates power output per outlet, with this information reported tothe microcontroller 330. The microcontroller receives this information,and through the communications link 332, provides the power consumptioninformation for the specific outlets. The metering integrated circuitmay determine power per outlet according to one of a number of differentalgorithms. For example, power may be determined as the product of theinstantaneous voltage and the instantaneous current integrated againsttime for a particular outlet, or power may be computed using acompensation scheme that corrects for phase differences in receivedsignals.

With reference now to FIG. 8, a block diagram illustration of a poweroutlet module 400 with associated power reporting components is nowdescribed for yet another exemplary embodiment. In this embodiment,similarly as in the embodiments of FIGS. 6-7, the power outlet module400 includes eight power outlets, 402-416. Each outlet 402-416 isconnected to power lines L1 and L2 and to power source 418. Power source418 may be, for example, a standard 120V power feed, or may be aparticular phase of a polyphase power source. In one embodiment, thepower line L1 from power source 418 is connected to line power in thepower source 418, and the power line L2 is connected to neutral in thepower source 418. Each outlet 402-416 is also interconnected to a groundin the power source 418, although this line connection from the outlets402-416 is not illustrated in FIG. 8. Each outlet 402-416, in thisembodiment, has an associated toroidal inductor 402 a-416 a that is usedto sense the current that is flowing through the line L1 to eachrespective outlet 402-416. The line L1 interconnected to each outlet402-416 is wired through the respective toroidal inductor 402 a-416 a.The toroidal inductors 402 a-416 a each have a current reporting line402 b-416 b that provides instantaneous current information related tothe respective toroidal inductor 402 a-416 a to a multiplexer 420. Themultiplexer 420 receives this current information related to eachrespective outlet 402-416, and provides information from one of theoutlets to a metering integrated circuit 422. A microcontroller 424provides a multiplexer control signal to the multiplexer 420 thatdetermines which of the outlets 402-426 the multiplexer 420 outputs, andthe metering integrated circuit 422 receives the current information forthe outlet selected by the microcontroller 424. The power outlet module400 also includes a line voltage detector that includes a voltagedropping resistor network 426, and an opto-isolated operationalamplifier 428, and provides in indication of instantaneous line voltagefor the power source 418. The metering integrated circuit 422 uses thecurrent information related to the outlet that is being output by themultiplexer 420 along with the line voltage to calculate the power beingconsumed through the selected outlet 402-416. This information iscommunicated to the microcontroller 424 that then may report theinformation to other, external, components through a communications line430 to a communications bus. Each of the outlets 402-416, while notillustrated in FIG. 7, may be connected to the power source throughelectromechanical relays, with each operable to monitor and/or controlthe power transmitted to a respective individual outlet.

The power outlet module 400 may be installed into a PDU system thatprovides power to a number of different electronic components that areused in a computing network. It may be desirable for computing networkmanagers, such as information technology (IT) personnel, to monitor thepower used by various different individual components, and the describedpower outlet modules may provide such reporting functionality. The powerper for the selected outlet is determined by multiplying theinstantaneous voltage by the instantaneous current for a particularoutlet, and integrating this product against time to give energy used(kilowatt hours, etc.) In an embodiment, the microcontroller computesthe RMS watts for each respective outlet 402-416 by multiplying the RMSvoltage by the RMS current.

With reference now to FIGS. 9-13, schematic diagrams of anotherexemplary embodiment are now discussed. In this embodiment, variousdifferent components of an outlet module may be assembled onto separatecircuit boards that are then assembled into a power outlet module. Insuch a manner, component boards may be assembled to include featuresthat are ordered by a particular customer or user of a PDU in which theoutlet module will be used. Furthermore, a user or customer may desiresome, but not all, of the outlets in a PDU to have the capability ofreporting power usage related to individual outlets, and thus differentoutlet modules, or subsets of outlets in a outlet module, may beassembled with the additional component boards to provide suchcapability.

In one embodiment, an outlet module includes eight (8) individualoutlets, that are organized into logical groups of four outlets each.Illustrated in FIG. 9 is a schematic illustration of an outlet circuit500 for such an embodiment. In this embodiment, eight outlets 502-516are assembled to be included in an outlet module. In this embodiment,outlet 502 and 516 are IEC-C19 type connectors, and outlets 504-514 areeach IEC-C13 type connectors, although it will be readily recognizedthat outlets may be any suitable outlet type as required for aparticular application. The outlet circuit 500 includes a ground input520 that is electrically connected to a ground connection in eachrespective outlet 502-516. A neutral line may be electrically connectedto each outlet 502-508 through a neutral input 524 that is provided forthe four outlets 502-508, with a neutral line electrically connected toeach outlet 510-516 through a second neutral input 528. Alternatively,if all eight outlets 502-516 are to be connected to a single powersource, the neutral line for each set of four outlets may be connectedthrough jumper connection 532, with neutral inputs 536, 540 provided toelectrically connect the neutral for each outlet 502-526. As will bereadily understood, a line voltage may be provided in place of a neutralconnection in applications requiring higher voltages for the outlets520-516. With continuing reference to FIG. 9, this embodiment provides avisual indicator at each outlet 502-516 that power is present at theoutlet 502-516. The visual indicator is provided through a LED 544 thatis interconnected between line power and neutral for each outlet502-516. Line power for each outlet 502-516, in this embodiment, isprovided through line inputs 548-562. Each line input 548-562 may beconnected through a switch to line power from a power source, as will bedescribed in more detail below. In such a manner, when a respectiveswitch is configured to supply power to an outlet 502-516, the LED 544associated with the outlet 502-516 will illuminate, thus providing avisual indicator that power is being provided to a particular outlet502-516. The LED 544, in this embodiment, is electrically connectedbetween the line input and neutral through a current limiting diode 566and resistors 570. In other embodiments, such a visual indicator may notbe desired, and in such embodiments the components related to the visualindicator may be omitted. As mentioned, line power is provided throughseparate line inputs 548-562 for each respective outlet 502-516. In someembodiments, the line inputs 548-562 are electrically connected toswitches to provide switched electrical outputs 502-516, and in otherembodiments some or all of the line inputs 548-562 may be connected inan unswitched configuration to a line power input to provide unswitchedoutputs.

As mentioned, in some embodiments switched outputs are provided. Withreference now to FIG. 10, provided in this embodiment is a relay circuit600. The relay circuit 600 may be provided on a separate printed circuitboard that is sized and configured to couple with the outlet circuit500. In such a manner, if switched outlets are required for an outletmodule, the relay circuit may be assembled with the outlet module toprovide such functionality. The relay circuit 600 includes relays602-616 that provide line power to each outlet 502-516, respectively.The output of each relay 502-516 is provided to line power outputs648-662 that, when coupled to outlet circuit 500, and connected to lineinputs 548-562, respectively. Line power is provided to the relaycircuit 600 through line power input 670 when all eight outlets 502-516receive power form one line power input, and through power inputs 672and 674 when a line power input is provided for each set of four outlets502-508, and 510-516, respectively. Each relay 602-616 is connected to arelay driver circuit 678-692, respectively, that provide signals toswitch the relays 602-616. The relay driver circuits 678-692 areelectrically connected to a relay control through connections 678 a-692a, respectively, and/or through electrical connector 696 that isconnected to a relay control circuit. Relay driver circuits 678-692 areconnected to line power through the respective relay 602-616 and to theneutral input through inputs 628 and 624. In the event that a singleneutral is provided for all of the outlets, a jumper 676 connectsneutral lines for each set of four relay controls. 678-684, and 686-692,respectively.

With reference now to FIG. 11, current sensing is described for thisembodiment. A current sensing circuit 700, in this embodiment, isincluded as a separate printed circuit board that can be assembled intoa power outlet module when it is desired to have the capability toprovide current information related to each individual outlet in anoutlet module. Such a circuit board may be used in conjunction withother circuit boards, such as the relay circuit 600 of FIG. 10. Such aconfiguration is illustrated in FIG. 14, in which the circuitry of FIG.9 is contained on the lower printed circuit board 750, the circuitry ofFIGS. 11-13 are contained on the middle circuit board 754, and thecircuitry of FIG. 10 is contained on the upper circuit board. Theelectrical connections of each of the circuit boards may be designedsuch that the boards may be assembled with related inputs/outputs andconnections that are aligned so as to provide for efficient modularassembly of power outlet modules that incorporate some or all of thefeatures described herein through the addition of one or more relatedprinted circuit boards. As illustrated in FIG. 11, current transformers(CTs) 702-716 are provided that sense current flowing in an associatedconductor that is routed through the individual CT 702-716. The currenttransformers 702-716 in this embodiment are toroidal inductors that eachhave two output lines, the output proportional to the magnitude of thecurrent that is flowing through the conductor associated with the CT. Inthis embodiment, the line power conductor for each outlet 502-516 isrouted through a corresponding CT 702-716. The respective CT 702-716outputs a signal that corresponds to the magnitude of the current which,in this embodiment, is output on two output leads. In the embodiment ofFIG. 11, the outputs are connected to related smoothing circuitry thatincludes resistors and capacitors to provide current sense outputs 702a, 702 b through 716 a, 716 b for each outlet. The current sense outputs702 a, 702 b-716 a, 716 b, are provided to a power sensor for use indetermining the power that is being provided to a particular outlet.Also provided to the power sensor is information related to the linevoltage that is present on each outlet so as to provide voltage andcurrent information for use in determining power. In this embodiment, aswill be described in more detail below, the power sensor is a processorthat includes inputs for the current sense outputs 702 a, 702 b through716 a, 716 b, as well as voltage sense inputs for line voltage.

Line voltage measurements are provided, in this embodiment, through avoltage sensor circuit 800 that is illustrated in FIG. 12. The voltagesensor circuit 800 includes a voltage dropping resistor circuit 804 thatis connected to line power source at a first end 808, and connected tothe neutral input at a second end 812. The voltage dropping resistornetwork 804 is tapped between resistors and at the neutral input withthe taps provided to positive and negative Voltage inputs to anopto-isolated amplifying circuit 816. Similarly as described above, avoltage sense transformer may be used instead of a voltage droppingresistor network. The output of the opto-isolated amplifying circuit 816is provided as a voltage sense signal 820. In the embodiment of FIG. 12,an optocoupler 824 is connected to the line input and provides afrequency sense signal 828 to indicate that AC line voltage is present.In embodiments where all of the outlets of an outlet module are poweredby a single power source, a single voltage sensor circuit 800 is used,and in embodiments where different outlets in the outlet module aresupplied power from different power sources, a second voltage sensorcircuit is provided for the second power input to the outlet module. Asdiscussed above, this embodiment may be implemented using printedcircuit boards that provide circuitry for various features described. Inthis embodiment, the voltage sensor circuit(s) are provided on the sameprinted circuit board as the current sensor circuit 700, although itwill be readily recognized that other configurations may be implemented.

Referring now to FIG. 13, a power sensor and control circuit 900 isdescribed for an embodiment. The power sensor and control circuit 900,in this embodiment, is included in the same printed circuit board as thecurrent and voltage sensor circuits 700, 800, although otherimplementations will be readily recognized. The power sensor and controlcircuit 900 includes a microcontroller 904 that receives all of thecurrent sense signals 702 a, 702 b through 716 a, 716 b, are receivesvoltage sense signal(s) 820. These signals are received and processed todetermine the power being provided to each outlet 502-516 in the outletmodule. The microcontroller 904 is interconnected to an addressablelatch 908 that provides control signals to the relays 602-616, ifpresent. The microcontroller 904 also includes communications inputsthat may be coupled to a communications bus to receive and transmit datafrom/to the bus. In this embodiment, the microcontroller 904 has 16current input channels, two per outlet, which are electrically connectedto the current sense outputs 702 a, 702 b through 716 a, 716 b. Themicrocontroller includes ADC inputs that digitize the current andvoltage sense signals. Relative to the current sense signals, the ADCincludes a differential ADC input based on the two inputs for eachoutlet. In this embodiment, the microcontroller 904 filters the currentand voltage sense signals to reduce noise that may be present. Thedigitized current sense signals are scaled for 16 Amps with a 3.0 crestfactor, in this embodiment. The voltage sense signals(s) are received onup to two voltage input channels, one per branch, with a single-endedADC input and a digitized output scaled for +/−390 volt peaks. Thefrequency sense signals is also provided to the microcontroller which isused for frequency determination and timing of cycle sampling,auto-adjusted every second to compensate for microcontroller 904RC-clock temperature drift. The microcontroller 904, in this embodiment,also provides for calibrations to account for system phase error andprovide near-zero to near-full-span voltage and near-zero tonear-full-span current digitization.

Power information is generated from the microcontroller 904 in thisembodiment by sampling the current sense signals from an outlet alongwith the voltage sense signal for that outlet branch (if more than onevoltage sense signal is provided) over a full AC cycle. The sampling isfollowed by processing time to determine the power related to the outletfor the cycle. This process is then repeated for the next outlet, and soon. Sampling in this embodiment is done at a rate of 120 samplesper-cycle, or each three degrees, which is four times the Nyquist ratefor the 14th harmonic at 50 or 60 Hz. Sampling may be delayed betweenvoltage and current sense signals to correct for phase error introducedby the system through, for example, the current transformer toroid,filters, etc. For each AC cycle, the microcontroller 904 calculates RMSVoltage (square root of the sum of the squares of the difference of eachdata point from the mean of all the data points), and RMS Current(square root of the sum of the squares of the difference of each datapoint from the mean of all the data points). A pseudo-running-averagemean of the most-recent eight AC cycles is computed, which provides aless-varying DC offset of the differential current ADC input channel(i.e. a low-pass filter approach). The microcontroller 904, in thisembodiment, also computes Apparent Power as the product of the RMSVoltage and the RMS Current, and Active Power as an integration of theproduct of instantaneous voltage and current data points with the meanremoved from each and sign preserved. A Power Factor is also computed asthe inverse cosine of the quotient of active power divided by apparentpower. As discussed above, the microcontroller 904 is interconnected toa communications bus (such as an I2C bus or SMBus). The microcontroller904 reports over the bus, for each outlet/channel: (a) Voltage RMS(Vrms)—the pseudo-running-average of the eight most-recent Vrms valuesreported to a tenth volt; (b) Current RMS (Irms)—thepseudo-running-average of the eight most-recent Irms values reported toa hundredth Ampere; (c) Apparent Power (VA)—the pseudo-running-averageof the eight most-recent VA values reported to in whole volt-amps; (d)Active Power (W)—the pseudo-running-average of the eight most-recentactive power values reported in whole watts; and (e) Power Factor(pF)—the pseudo-running-average of the eight most-recent pF valuesreported to a tenth. This data may be received by an external systemthat collects the data and related outlet for which the data isprovided, and used to determine metrics or provide information such asdescribed above.

FIG. 15 is an illustration of a circuit board configuration of anotherembodiment. In this embodiment, the components described above withrespect to the three circuit boards as illustrated in FIG. 14 areprovided on a single circuit board. In this embodiment, power outlets950 are provided that have a neutral line and a ground that are providedby a bus bar (not shown). The line power is provided to outlets 950through a line connection 954 that is routed through a relay 958 and anassociated current transformer 962. The relays 958 and currenttransformers 962 are interconnected to control and monitoring circuitrysuch as illustrated in FIGS. 9-13. In this embodiment, the printedcircuit board 966 is mounted at a 90 degree angle relative to the planeof the outlets 950. In this manner, the additional surface area requiredby the circuit board 966 is provided in a plane that is generallyperpendicular to the plane of the outlets 950, rather than in a parallelplane as illustrated in the embodiment of FIG. 14. By configuring thecircuit board 966 perpendicular to the plane of the outlets 950, thisadditional surface area can be accommodated simply be making the PDUhousing somewhat deeper, with the width of the housing remainingsubstantially the same as the embodiment of FIG. 14. Using a singleprinted circuit board 966 allows a reduced manufacturing cost andprovides efficiencies in manufacturing due to reduced assembly stepsrelative to embodiments with more than one printed circuit board.

FIG. 16 shows an exemplary environment generally 1000 in whichembodiments of the invention may be practiced. A remote power manager(RPM) 1002 may be configured for various kinds of user interactions. Inthe embodiment shown, the RPM is provided as an Internet-basedapplication that communicates with client web browsers 1004, 1006 and1008 through a web server 1010. The RPM may create, maintain, access andupdate a database 1012 of tables 1016, 1018 and 1020 such as the tablesto be described below. The database may be a Microsoft SQL Serverdatabase. The RPM may access the database directly or through adaemon/service 1022 that eases any processing burden on the RPM andnetwork traffic to and from the RPM.

The daemon/service or the RPM itself may communicate with a simplenetwork management protocol (SNMP) service 1024 and an SNMP trap service1026. The SNMP service in turn communicates with one or more powerdistribution units (PDUs) 1028, 1030 and 1032.

The PDUs may comprise, for example, PDUs as described above anddistributed by Server Technology, Inc. (STI) of Reno, Nev. A PDU may bemonitored and controlled by an electronic control system, of which oneexample is the Mt. Rose controller board distributed by STI. Each PDUmay include one or more electrical outlets and sensors that indicatevoltage present at the outlets and current flow through each outlet.

Data obtained from the PDUs may be retrieved through the SNMP serviceand stored in the database. Similarly, data stored in the database maybe used to configure or control the PDUs via the SNMP service.Communication protocols other than SNMP could also be used.

Messages spawned proactively or reactively by the PDUs may be sent tothe daemon service through the SNMP trap service. Or the PDUs maycommunicate directly with the RMP by a TCP/IP communication protocol1034 or another communication channel or protocol.

FIG. 17 illustrates a method of managing electrical power usageaccording to the principles of the invention. The method includescollecting 1201 power usage data indicative of electrical current flowthrough each of a plurality of the electrical outlets in the system,displaying 1203 the power usage data to a user, receiving 1205 auser-initiated command to control current flow through any outletselected by the user, and controlling 1207 current flow through theselected outlet responsive to the command. Controlling current flowthrough an outlet may be accomplished by turning the outlet on or off1209.

The method may include receiving 1211 a user-initiated command to rebootcontrol circuitry associated with one or more of the outlets andrebooting 1213 the control circuitry responsive to the command.

The method may include collecting 1215 environmental data indicative ofenvironmental conditions of the electrical outlets and displaying 1217the environmental data to the user. The environmental data may includetemperature or humidity (or both) or other environmental factors asdesired.

A report descriptive of a power usage trend may be generated 1219automatically or responsive to a user request. A log of events may begenerated 1221. A message may be automatically sent 1223 to a user if auser-defined event occurs. Such an event may be, for example, sensing ofany of a predetermined temperature, a predetermined humidity, or apredetermined amount of electrical power usage by one or more outlets.The user may specify the parameters of an event for a one-time report ora report may be sent automatically each time the event occurs. Or anSNMP trap may be used when an event occurs.

The method may include assigning 1225 each outlet in any one location toa cabinet distribution unit (CDU) in that location. At least one uniqueIP address may be associated 1227 with each location having one or moreCDUs. If there are several CDUs at a given location, each may get aseparate IP address or a single IP address may be used for some or allof the CDUs at that location. Collecting power usage data respecting anoutlet may be accomplished by communicating via the Internet with the IPaddress associated with the CDU containing that outlet.

Displaying information to the user may include displaying 1229 thestatus of one or more CDUs. The status of a CDU may be any of critical,changed, normal, no data, maintenance, or snooze. “Critical” denotes acondition that may require immediate corrective action. “Changed”denotes that a parameter has changed since a previous report or display.“Normal” denotes all parameters are within limits that the user mayspecify or that may have been predetermined at some prior time. “Nodata” indicates a communication failure between the CDU in question andthe power manager. “Maintenance” indicates that the CDU in question isbeing maintained and will remain in that status until manually changed.“Snooze” indicates that the CDU in question is temporarily off-line butwill return to on-line status at a predetermined future time.

The method may include displaying 1231 a graphical representation oflocations of CDUs in the power distribution system. This graphicalrepresentation may take the form of a world map with indicators such asicons placed over CDU locations. Maps drawn to various scales may beprovided; for example, a map of the United States may indicate all CDUlocations in that country, a map of Nevada may indicate all CDUlocations in Nevada, and a map of Reno may indicate all CDU locationsthere.

The method may include displaying 1233 an amount of electrical poweravailable to a CDU. This may be, for example, the capacity of theelectrical feed at a given location, or into the CDU cabinet or into aparticular CDU.

The method may include clustering 1235 a plurality of outlets. Thisincludes assigning a plurality of outlets in a CDU having one IP addressand a plurality of outlets in a CDU having another IP address to acluster. Once this has been done, various ones of the above-describedsteps may conveniently be applied to all outlets in the cluster. Forexample, the status of the cluster may be displayed, a user-initiatedcommand to control current flow through all outlets in a clusterselected by the user may be received, and current flow through alloutlets in the user-selected cluster may be controlled responsive to thecommand.

Typically, every outlet has its own current sensor, and every outlet orevery bank of outlets connected to a single electrical supply line has avoltage sensor. Data gathered by these sensors may be used locally, forexample to calculate power consumption of each outlet which informationis thereupon transmitted to the RPM 1002 (see FIG. 1) or the sensor datamay be transmitted directly to the RPM.

Tables that may be used in embodiments of the invention will now bedescribed. These tables may include, for example, SYSTEM tables, TOWERtables, INFEED tables, OUTLET tables, ENVMON tables, TEMPHUMID tables,CONTACTCLOSURE tables, STATUS LOOKUP tables, SNMP OID LOOKUP tables,OUTLET CLUSTER tables, TRENDING tables, USERS tables, DISCOVERY tables,GRAPHICAL DISPLAY tables, ALERT tables and REPORT tables.

A SYSTEM table may represent the highest level in a hierarchy. Thistable may contain system-wide information such as the name and IPaddress of an entire system. Table 1 is an exemplary system table:

TABLE 1 MRSystem Table FIELD NAME Description How Obtained MRSYSTEMIDPrimary Key Generated when added MRSYSTEM_NAME User Assigned Name FromSNMP GET or from User entry MRSYSTEM_IP_TYPE IP type - 0 = IPV4,Defaults to 0 1 = IPV6 MRSYSTEM_IPADDR System IP address From devicediscovery or from User entry MRSYSTEM_TCPIP_PORT include for futureDefaults to 161 expansion MRSYSTEM_LOCATION User defined location FromSNMP string GET or from User entry MRSYSTEM_CONTACT User specified FromSNMP system contact GET or from User entry MRSYSTEM_DESCR User specifiedFrom SNMP system description GET or from User entryMRSYSTEM_WATTS_PER_UNIT_AREA System calculated From SNMP value PollMRSYSTEM_AREA User specified area From SNMP powered by this GET or fromsystem User entry MRSYSTEM_TOTAL_POWER Total power being From SNMP usedpoll MRSYSTEM_ENV_MON_COUNT Number of From SNMP environmental GETmonitors on this system MRSYSTEM_TOWER_COUNT Number of towers on FromSNMP this system GET MRSYSTEM_NIC_SERIALNUMBER Network interface FromSNMP card serial number GET MRSYSTEM_VERSION Firmware version on FromSNMP this system GET MRSYSTEM_SNMP_PUBLIC The SNMP public User enteredor access string - default from discovery to “PUBLIC” tablesMRSYSTEM_SNMP_PRIVATE The SNMP private User entered or access string -default from discovery to “PRIVATE” tables Icon Not Used Not UsedDisplayMapID Not Used Not Used XLoc_Level1 Not Used Not Used YLoc_Level1Not Used Not Used Status_Change_Time Timestamp of last System derivedupdate to the device Status_Critical Number of critical System derivedalarms this CDU has Status_Warning Number of warning System derivedalarms this CDU has Status_Unreachable Flag whether this System derivedCDU is unreachable or not Status_Maintenance Flag whether this Systemderived CDU is in maintenance mode or not Current_Val This systemshighest System derived current reading Power_Val This systems highestSystem derived power reading Temp_Val This systems highest Systemderived temperature reading Humid_Val This systems highest Systemderived humidity reading Snooze_Start Time this system has User assignedgone into maintenance mode Snooze_End Time this system will Userassigned leave maintenance mode RackID Link to the Racks Assigned by antable admin on the GUI MRSystem_Cap System capacity of Entered via theWatts per area unit Admin on the GUI MRSystem_Area_Unit Area unit usedto SNMP Get derive system capacity MRSystem_PowerFactor The power factorused SNMP Get in power calculations performed by the system.

Note that most of the fields in this table may be populated via SNMPGETs. For the fields that can be either SNMP specified or userspecified, the RPM may attempt to get the value via SNMP when the deviceis discovered. If unable, no value or a user specified value can beused. When the user specifies a value, an attempt will be made to setthe new value on the actual system, but the value in the table is theoverriding value if the value on the system differs from the value onthe device. Values that are retrieved only via an SNMP GET are notsettable by the user, since they are hardware configuration values fromthe system. The values that are retrieved via an SNMP Poll are dynamicvalues that may change as the system is used. The polling operations mayoccur as the data is required by the RPM (e.g., as the data is requiredby a graphical user interface (GUI) of the RPM), and the polling datamay or may not be saved in the database (the labels may remain in thedatabase for OID table lookup reasons). Much of the data retrieved viaSNMP Poll operations may be stored in a TREND table for purposes of atrending feature. That is, data may be stored in a TREND table for thepurpose of monitoring data trends, viewing or printing reports, ortaking appropriate action based on a trend.

The SYSTEM table may have a one-to-many relationship with the TOWER,ENVIRONMENTAL MONITOR, CONTACT CLOSURE, TEMPERATURE/HUMIDITY PROBE,INFEED and OUTLET tables/devices in the system. In one embodiment, allof the children (tables) of a SYSTEM table contain the primary key oftheir SYSTEM table. This characteristic may be true of the tables inseveral portions of the database, including the SYSTEM tables, TOWERtables, INFEED tables, OUTLET tables, and ENVMON tables. As a result,the entire system may be described by queries that request the parent'sprimary key. The SNMP public and private access strings may be includedin the system table. These values can be set by the user and maycorrespond to strings in the controller board firmware. The DISCOVERYtables may contain the strings to use, and these fields may be initiallyset from these values.

Additional fields may be added to a SYSTEM table to support GUIfunctions such as the display of custom graphics (e.g., icons,schematics or photos representing managed devices or device groups).

An exemplary TOWER table will now be described. A tower may be a PDU orother device having a processor such as an ARM processor. One or aplurality of towers may exist within a system. Table 2 shows anexemplary TOWER table.

TABLE 2 Mt. Rose TOWER table FIELD NAME Description How ObtainedMRTOWERID Primary Key Generated when added MRTOWER_NAME User AssignedName From SNMP GET or from User entry MRTOWER_ABS_NAME System Generatedwith the From SNMP first tower, for example, being GET A, the second B,etc. All towers have a unique absolute name, which may be the system IPaddress appended with the absolute name MRSYSTEMID Primary key of thesystem Determined table to which this tower when added belongsMRTOWER_CAPABILITIES A 4 byte bit map with each bit SNMP GETcorresponding to a capability MRTOWERSTATUSID Primary key into a towerstatus SNMP POLL table which contains strings corresponding to the towerstatus MRTOWER_INFEED_COUNT Number of INFEEDS SNMP GET associated withthis tower MRTOWER_PRODUCT_SN Tower serial number SNMP GETMRTOWER_MODEL_NUMBER Tower Model number SNMP GET Icon Not Used Not UsedDisplayMapID Not Used Not Used XLoc_Level1 Not Used Not Used YLoc_Level1Not Used Not Used

The term “Mt Rose” refers to a device embodying portions of theinvention.

As with the SYSTEM table, most of the fields in the TOWER table may bepopulated via SNMP. For the fields that can be either SNMP specified oruser specified, the RPM may attempt to get the value via SNMP when thedevice is discovered. If unable, no value or a user specified value maybe used. When the user specifies a value, an attempt may be made to setthe new value on the actual tower, but the value in the table mayoverride the value if the value in the TOWER table differs from thevalue on the tower. The values that are only retrieved via an SNMP GETare not settable by the user since they are hardware configurationvalues from the tower. The values that are retrieved via an SNMP Pollare dynamic values that may change as the system is used. The pollingoperations will occur as the data is required by the RPM (or its GUI),and the polling data may or may not be saved in the database (the labelsmay remain in the database for OID table lookup reasons). Much of thedata retrieved via SNMP Poll operations may be stored in a TREND tablefor use with a trending feature.

A TOWER table has a one-to-one relationship with a SYSTEM table. Theprimary key of the associated SYSTEM table may be held in the TOWERtable. A TOWER table may have a one-to-may relationship with INFEED andOUTLET tables/devices. The INFEEDS associated with a TOWER can beretrieved with a query of the INFEED table using the TOWERID primary keyas the search key. Additional fields may be added to a TOWER table tosupport GUI functions such as the display of custom graphics.

An “infeed” is a power input, such as a connection to a power source. Atower may have one or multiple infeeds. Table 3 provides an example ofan INFEED table.

TABLE 3 Mt. Rose INFEED Table FIELD NAME Description How ObtainedMRINFEEDID Primary Key Generated when added MRINFEED_NAME User AssignedName From SNMP GET or from User entry MRINFEED_ABS_NAME SystemGenerated - may From SNMP be a concatenation of the GET TOWER absolutename and the number of the infeed. The first infeed on the first tower,for example, may be AA, the second may be AB. The first infeed on thesecond tower may be BA, the second may be BB etc. All infeeds have aunique absolute name that may be the system IP address appended with theabsolute name MRTOWERID Primary key of the tower Determined table towhich this infeed when added belongs MRSYSTEMID Primary key of thesystem Determined table to which this infeed when added belongsMRINFEED_CAPABILITIES A 4 byte bit map with SNMP GET each bitcorresponding to a capability MRINFEEDSTATUSID Primary key into aninfeed SNMP POLL status table which contains strings corresponding tothe infeed status MRINFEEDLOADSTATUSID Primary key into an infeed SNMPPOLL status table which contains strings corresponding to the infeedload status MRINFEED_LOAD_VALUE Infeed load as determined SNMP POLL bythe SNMP poll MRINFEED_LOAD_HIGH_THRESH The SNMP load high SNMP GETthreshold on the infeed. This value can be set by user input to the SPMusing SNMP PUT processing. MRINFEED_OUTLET_COUNT Number of outlets SNMPGET associated with this infeed MRINFEED_VOLTAGE Voltage on the infeedas SNMP POLL of the last SNMP poll MRINFEED_POWER Power at the infeed asof SNMP POLL the last SNMP poll MRInfeed_Capacity The load capacity ofthe SNMP POLL input feed. Icon Not Used Not Used DisplayMapID Not UsedNot Used XLoc_Level1 Not Used Not Used YLoc_Level1 Not Used Not UsedMRInfeed_ApparentPower The apparent power SNMP POLL consumption of theinput feed. MRInfeed_PowerFactor The power factor of the SNMP POLL inputfeed. MRInfeed_CrestFactor The crest factor for the SNMP POLL load ofthe input feed.

As with the previously-described tables, most of the fields in thistable may be populated via SNMP. For the fields that can be either SNMPspecified or user specified, the RDCM may attempt to get the value viaSNMP when the device is discovered. If unable, no value or a userspecified value may be used. When the user specifies a value, an attemptmay be made to set the new value on the actual infeed. If the value tobe set is the MRINFEED_LOAD HIGH THRESH, the value must be successfullyset on the infeed in order for it to take affect. This is because thisvalue is an SNMP threshold for traps that are recognized and generatedby the device firmware. Other values in the table may override thefirmware values if the value in the INFEED table differs from the valueon the actual infeed. The values that are only retrieved via an SNMP GETare not settable by the user since they are hardware configurationvalues from an infeed. The values that are retrieved via an SNMP Pollare dynamic values that may change as the system is used. The pollingoperations may occur as the data is required by the RPM (or its GUI),and the polling data may or may not be saved in the database (the labelsmay remain in the database for OID table lookup reasons). Much of thedata retrieved via SNMP Poll operations may be stored in a TREND tablefor use with a trending feature.

An INFEED table has a one-to-one relationship with a SYSTEM table and aTOWER table. The primary keys of the associated SYSTEM table and TOWERtable may be held in the INFEED table. An INFEED table may have aone-to-may relationship with OUTLET tables or devices. The OUTLETSassociated with an INFEED can be retrieved with a query of the OUTLETtable, using the INFEED primary key as the search key. Additional fieldsmay be added to an INFEED table to support GUI functions such as thedisplay of custom graphics.

An outlet is a power output, such as a connection to a powered (orunpowered) device. A tower may have one or multiple outlets. Table 4presents an exemplary description of an OUTLET table.

TABLE 4 Mt. Rose OUTLET table FIELD NAME Description How ObtainedMROUTLETID Primary Key Generated when added MROUTLET_NAME User AssignedName From SNMP GET or from User entry MROUTLET_ABS_NAME SystemGenerated - may be From SNMP a concatenation of the GET TOWER absolutename, the INFEED absolute name, and the number of the outlet. The firstoutlet on the first tower on the first infeed may be AAA, the second maybe AAB. The first outlet on the second tower on the second infeed on thesecond tower may be BBA, the second may be BBB etc. All outlets have aunique absolute name that may be the system IP address appended with theabsolute name. MRINFEEDID Primary key of the infeed Determined table towhich this outlet when added belongs. MRTOWERID Primary key of the towerDetermined table to which this outlet when added belongs. MRSYSTEMIDPrimary key of the system Determined table to which this outlet whenadded belongs. MROUTLET_CAPABILITIES A 4 byte bit map with each SNMP GETbit corresponding to a capability. MROUTLETSTATUSID Primary key into anoutlet SNMP POLL status table which contains strings corresponding tothe outlet status. MROUTLETLOADSTATUSID Primary key into an outlet SNMPPOLL status table which contains strings corresponding to the outletload status. MROUTLET_LOAD_VALUE Outlet load as determined SNMP POLL bythe SNMP poll. MROUTLET_LOADLOW_THRESH The SNMP load low SNMP GETthreshold on the outlet. This value can be set by user input to the SPMusing SNMP PUT processing. MROUTLET_LOADHIGH_THRESH The SNMP load highSNMP GET threshold on the outlet. This value can be set by user input tothe SPM using SNMP PUT processing. MROUTLETCONTROLSTATEID Primary keyinto an outlet SNMP POLL lookup table which contains stringscorresponding to the outlet control state. MROUTLETCONTROLACTIONIDPrimary key into an outlet SNMP POLL lookup table which contains stringscorresponding to the outlet control action. MRASSET Not used Not usedICON Not used Not used DISPLAYMAPID Not used Not used XLOC_LEVEL1 Notused Not used YLOC_LEVEL1 Not used Not used MROutlet_Power The activepower SNMP POLL consumption of the device plugged into the outlet.MROutlet_Capacity The load capacity of the SNMP POLL outlet.MROutlet_Voltage The voltage of the outlet. SNMP POLLMROutlet_ApparentPower The apparent power SNMP POLL consumption of thedevice plugged into the outlet. MROutlet_PowerFactor The power factor ofthe SNMP POLL device plugged into the outlet. MROutlet_CrestFactor Thecrest factor for the load SNMP POLL of the device plugged into theoutlet.

As with the previous tables, most of the fields in the OUTLET table maybe populated via SNMP. For the fields that can be either SNMP specifiedor user specified, the RPM may attempt to get the value via SNMP whenthe device is discovered. If unable, no value or a user specified valuemay be used. When the user specifies a value, an attempt may be made toset the new value on the actual outlet device firmware. If the value tobe set is the MROUTLET_LOAD HIGH THRESH or MROUTLET_LOADLOW_THRESH, thevalue must be successfully set on the outlet device firmware in orderfor it to take effect. This is because these values are SNMP thresholdsfor traps that are recognized and generated by the device firmware.Other values in the table may override the firmware values if the valuein the OUTLET table differs from the value on the actual outlet. Thevalues that are only retrieved via an SNMP GET are not settable by theuser since they are hardware configuration values from the OUTLET. Thevalues that are retrieved via an SNMP Poll are dynamic values that maychange as the system is used. The polling operations may occur as thedata is required by the RPM (or its GUI), and the polling data may ormay not be saved in the database (the labels may remain in the databasefor OID table lookup reasons). Much of the data retrieved via SNMP Polloperations may be stored in a TREND table for use with a trendingfeature.

An OUTLET table has a one-to-one relationship with a SYSTEM table, aTOWER table, and an INFEED table. The primary keys of the associatedSYSTEM table, TOWER table, and INFEED table may be held in the OUTLETtable. Additional fields may be added to an OUTLET table to support GUIfunctions such as the display of custom graphics.

An ENVMON table may be used for monitor and control of environmentalmonitoring or control devices in a system, such as a temperature sensor,humidity sensor, water sensor, etc. Table 5 is an exemplary ENVMONtable.

TABLE 5 ENVMON Table FIELD NAME Description How Obtained MRENVMONIDPrimary Key Generated when added MRENVMON NAME User Assigned Name FromSNMP GET or from User entry MRENVMON_ABS NAME System Generated - forFrom SNMP example, with the first GET monitor being A, the second B,etc. All monitors have a unique absolute name that may be the system IPaddress appended with the absolute name MRSYSTEMID Primary key of thesystem Determined table to which this tower when added belongsMRENVMONSTATUSID Primary key into a monitor SNMP GET status table whichcontains strings corresponding to the status MRENVMON WATERSENSOR NAMEUser assigned name for SNMP GET or the water sensor monitor user enteredMRENVMONWATERSENSORSTATUSID Primary key into a water SNMP POLL sensormonitor status table which contains strings corresponding to the statusMRENVMON_ADC NAME User assigned name for SNMP GET or the analog todigital user entered converter MRENVMONADCSTATUSID Primary key into anADC SNMP POLL status table which contains strings corresponding to thestatus MRENVMON_ADC_COUNT The 8-bit count value from SNMP POLL theanalog-to-digital converter. A non- negative value may indicate thedigital value retrieved from the ADC, and a negative value may indicatethat a digital value was not able to be retrieved.MRENVMON_ADC_LOWTHRESH SNMP trap low threshold SNMP GET MRENVMON_ADCHIGHTHRESH SNMP trap high threshold SNMP GETMRENVMONTEMPHUMID_SENSOR_COUNT The number of SNMP GETtemperature/humidity sensors on the environmental monitor.MRENVMON_CONTACTCLOSURE The number of contact SNMP GET COUNT closures onthe environmental monitor.

As with the previous tables, most of the fields in the ENVMON table maybe populated via SNMP. For the fields that can be either SNMP specifiedor user specified, the RPM may attempt to get the value via SNMP whenthe device is discovered. If unable, no value or a user specified valuemay be used. When the user specifies a value, an attempt may be made toset the new value on the actual device firmware. If the value to be setis one of the SNMP trap thresholds, the value must be successfully seton the outlet device firmware in order for it to take effect. This isbecause these values are SNMP thresholds for traps that are recognizedand generated by the device firmware. Other values in the table mayoverride the firmware values if the value in the table differs from thevalue on the actual hardware. The values that are only retrieved via anSNMP GET are not settable by the user since they are hardwareconfiguration values from the Mt. Rose system. The values that areretrieved via an SNMP Poll are dynamic values that may change as thesystem is used. The polling operations may occur as the data is requiredby the RPM (or its GUI), and the polling data may or may not be saved inthe database (the labels may remain in the database for OID table lookupreasons). Much of the data retrieved via SNMP Poll operations may bestored in a TREND table for use with a trending feature.

An ENVMON table has a one-to-one relationship with a SYSTEM table. Theprimary key of the associated SYSTEM table may be held in the ENVMONtable. An ENVMON table may have a one-to-may relationship with TEMPHUMIDand CONTACTCLOSURE tables/devices in a system. The monitors associatedwith an ENVMON table can be retrieved with a query of the associatedtables using the ENVMONID primary key as the search key. Additionalfields may be added to an ENVMON table to support GUI functions such asthe display of custom graphics.

Table 6 provides an example of a temperature and humidity monitor(TEMPHUMID) table.

TABLE 6 TEMPHUMID table FIELD NAME Description How ObtainedMRTEMPHUMIDID Primary Key Generated when added MRTEMPHUMID NAME UserAssigned Name From SNMP GET or from User entry MRTEMPHUMID_ABS NAMESystem Generated - for From SNMP example, as GET a concatenation of theENVMON absolute name and the number of the TEMPHUMID monitor. The firstTEMPHUMID monitor on the first ENVMON may be Al, the second may be A2.The first on the second ENVMON may be B I, the, second may be B2 etc.All TEMPHUMID monitors have a unique absolute name that may be thesystem IP address appended with the absolute name MRENVMONID Primary keyfor the Determined ENVMON associated with when added this TEMPHUMIDmonitor MRSYSTEMID Primary key of the system Determined table to whichthis device when added belongs MRTEMPHUMIDSTATUSID Primary key into amonitor SNMP POLL status table which contains strings corresponding tothe status MRTEMPHUMIDTEMPSTATUSID Primary key into a monitor SNMP POLLstatus table which contains strings corresponding to the statusMRTEMPHUMID_TEMP_VALUE Temperature value as of the SNMP POLL last SNMPpoll in degrees. MRTEMPHUMID_TEMP_LOW THRESH The temperature low SNMPGET threshold value of the sensor in degrees, using the scale selectedby tempHumidSens or TempScale. The default is Celsius. MRTEMPHUMID_TEMPThe temperature high SNMP GET HIGHTHRESH threshold value of the sensorin degrees, using the scale selected by tempHumidSensorTempScale. Thedefault is Celsius. MRTEMPHUMIDHUMIDSTATUSID Primary key into a monitorSNMP POLL status table which contains strings corresponding to thestatus MRTEMPHUMID_HUMID VALUE The humidity measured by the SNMP POLLsensor. A non-negative value indicates the measured humidity inpercentage relative humidity. A negative value indicates that a humidityvalue was not able to be measured. MRTEMPHU1V1ID_HUMID The humidity SNMPtrap low SNMP GET LOWTHRESH threshold value of the sensor in percentagerelative humidity. MRTEMPHUMID HUMID The humidity SNMP high SNMP GETHIGHTHRESH threshold value of the sensor in percentage relativehumidity. MRTEMPHUMIDTEMPSCALEID Primary key into a table SNMP GET whichcontains strings corresponding to the scale used for temperature values.The default is Celsius.

As with the previous tables, most of the fields in a TEMPHUMID table arepopulated via SNMP. For the fields that can be either SNMP specified oruser specified, the RPM may attempt to get the value via SNMP when thedevice is discovered. If unable, no value or a user specified value maybe used. When the user specifies a value, an attempt may be made to setthe new value on the actual device firmware. If the value to be set isone of the SNMP trap thresholds, the value must be successfully set onthe outlet device firmware in order for it to take effect. Other valuesin the table may override the firmware values if the value in the tablediffers from the value on the actual hardware. The values that are onlyretrieved via an SNMP GET are not settable by the user since they arehardware configuration values from the system. The values that areretrieved via an SNMP Poll are dynamic values that may change as thesystem is used. The polling operations may occur as the data is requiredby the RPM (or its GUI), and the polling data may or may not be saved inthe database (the labels may remain in the database for OID table lookupreasons). Much of the data retrieved via SNMP POLL operations may bestored in a TREND table for use with a trending feature.

A TEMPHUMID monitor table has a one-to-one relationship with a SYSTEMtable and ENVMON table. The primary keys of the associated SYSTEM tableand ENVMON table may be held in the TEMPHUMID table. Additional fieldsmay be added to a TEMPHUMID table to support GUI functions such as thedisplay of custom graphics.

Table 7 provides an exemplary CONTACTCLOSURE monitor table, which may beused for the monitor and control of contact closures, such as cabinetclosures, water contact sensors, or other devices.

TABLE 7 CONTACTCLOSURE table FIELD NAME Description How ObtainedMRCONTACTCLOSUREID Primary Key Generated when added MRCONTACTCLOSURENAME User Assigned Name From SNMP GET or from User entryMRCONTACTCLOSRE_ABS System Generated - for From SNMP NAME example, aconcatenation of GET the ENVMON absolute name and the number of theCONTACTCLOSURE monitor. The first monitor on the first ENVMON may be Al,the second may be A2. The first on the second ENVMON may be BI, thesecond may be B2 etc. All monitors have a unique absolute name that maybe the system IP address appended with the absolute name MRENVMONIDPrimary key for the Determined ENVMON associated with when added thismonitor MRSYSTEMID Primary key for the Determined ENVMON associated withwhen added this monitor MRCONTACTCLOSURESTATUSID Primary key for theSNMP POLL ENVMON associated with this monitor

A series of database tables may serve as STATUS LOOKUP tables. Thesetables allow the RPM application to easily determine the meaning ofstatus returned for devices via SNMP polling. These tables use thestatus value returned as an index into a table, with the correspondingtable record containing a text message, icon or other status indicatorassociated with the obtained status.

To facilitate SNMP processing, an OID LOOKUP TABLE may be created in theSQL SERVER database. This table may have, as one field, the label of thefield in a table for which the value is retrieved via SNMP. A secondfield in the table entry may be the SNMP OID that is used to retrievethe value for the field corresponding to the label. For example, oneentry in the MR_SNMP_OID_LOOKUP table may have a DATA LABEL field ofMRSYSTEM AREA. That value is a label in the MRSYSTEM table that containsthe area controlled by the system. The second field in theMR_SNMP_OID_LOOKUP table (the SNMP_OID field) may contain, for example,the value 0.1.3.6.1.4.1.1718.3.1.7, which would be the SNMP OID that isused to retrieve this value from the controller board firmware.

An outlet cluster is a group of outlets that can be assigned a name,which name can be used by an administrator to assign a user access toseveral outlets in one operation. This feature is implemented, in oneembodiment, using three tables. The first table is the OUTLET CLUSTERtable as shown in Table 8.

TABLE 8 OUTLET CLUSTER table FIELD NAME Description How ObtainedOUTLETCLUSERID Primary Key Generated when added OUTLET_CLUSER NAME UserAssigned From SNMP GET or Name from User entry

The OUTLET CLUSTER table contains the name(s) of user-defined outletclusters. Entries to this table are made when an administrator createsan outlet cluster.

The second table is the USER_OUTLETCLUSTER_ACCESS_LINK table as shown inTable 9. This table may be used to determine which users have access towhich outlet clusters.

TABLE 9 USER_OUTLETCLUSTER ACCESS LINK table FIELD NAME Description HowObtained USERID Primary Key of an entry in Assigned when the USERS tableadded OUTLETCLUSERID Primary Key of an entry in Assigned when the OUTLETCLUSER table added

The third table is the OUTCLUSTERS table, of which Table 10 isexemplary. This table may be used to determine which outlets are inwhich clusters.

TABLE 10 OUTLETCLUSTERS table FIELD NAME Description How ObtainedOUTLETID Primary Key of an Assigned when entry in the added OUTLET tableOUTLETCLUSTER ID Primary Key of an Assigned when entry in the addedOUTLET CLUSTER table

TRENDING tables may be used to log historical SNMP polling data. In thismanner, a user may monitor data trends, view or print reports, or takeappropriate action based on a trend. A user may provide configurationinformation (in some cases via an initialization or .ini file) tospecify how often SNMP polling should occur.

USERS tables may be used to specify what users have what authorizationsto access data in other tables or change device parameters.

DISCOVERY tables may contain specific IP addresses, IP address ranges,or other information that enables an RPM application to discoversystems, towers, infeeds, outlets or other devices.

GRAPHICAL DISPLAY tables may contain graphics or formatting informationthat are used to convey (e.g., display) any or all of the data containedin the tables to a user.

ALERT tables may contain information such as thresholds at which a usershould be alerted that a parameter has changed. ALERT tables may alsospecify actions to be taken when an alert needs to be generated.

REPORT tables may contain formatting information for generating reports.The reports may be based on any or all of the parameters contained inother tables. Some or all of the reports may be configurable.

Additional tables that may be used include the following:

TABLE 11 Discovery_Results table FIELD NAME Description How ObtainedRESULTID An ID assigned by the system System Identity Column DISCIDReference to an entry in the System assigned discovery work table IPTYPEIP address type From CDU Discovery process IPADDR IP address of the CDUFrom CDU Discovery process STATUS Status of the discovery From CDUDiscovery process DISCOVER_TIME Time of discovery From CDU Discoveryprocess TOWER_COUNT Number of towers found on the From CDU CDUINFEED_COUNT Number of Infeeds found on the From CDU CDU OUTLET_COUNTNumber of the total outlets found From CDU on the CDU ENVMON_COUNTNumber of the Environmental From CDU Monitors found on the CDU THP_COUNTNumber of the Temperature From CDU Humidity Sensors found on the CDUCC_COUNT Number of contact closures found From CDU on the CDUThis table stores the information of the CDU as it was during thediscovery time.

TABLE 12 Discovery_Work table FIELD NAME Description How Obtained DISCIDAn ID assigned by the system System Identity Column INPROGRESS Status ofthe progress of the System assigned discovery STARTTIME Time thediscovery started System assigned ENDTIME Time the discovery endedSystem assigned IPSTART First IP address to start discovering From Adminuser on GUI on IPEND Last IP address to end discovering From Admin useron GUI on IPTYPE Type of IP address to use for From Admin user on GUIdiscovery COMM_PUBLIC Public community string to use for From Admin useron GUI discovery COMM_PRIVATE Private community string to use for FromAdmin user on GUI discovery FTP_USERNAME FTP user name to use todownload From Admin user on GUI the config binary FTP_PASSWORD FTPpassword to use to download From Admin user on GUI the config binaryThis table stores each user initiated discovery, time it started, timeit ended and a status on its progress.

TABLE 13 DisplayMaps table FIELD NAME Description How ObtainedDISPLAYMAPID An ID assigned by the system System Identity ColumnMAP_FILE_NAME Name of the image file on disk From Admin user on GUIMAP_LEVEL Not used Not used MAP_PARENT_DISPLAYMAPID ID of the parentdisplay map From Admin user on GUI MAP_NAME Name of this map or locationFrom Admin user on GUI MAP_IMAGE Not used Not used XLOC1 X position onparent map From Admin user on GUI YLOC1 Y position on parent map FromAdmin user on GUI WIDTH Image width in pixels From Admin user on GUIHEIGHT Image height in pixels From Admin user on GUIThis table stores all the information of the enabled locations in thesystem.

TABLE 14 DisplayMaps_Unused table FIELD NAME Description How ObtainedDISPLAYMAPID An ID assigned by the system System Identity ColumnMAP_FILE_NAME Name of the image file on disk From Admin user on GUIMAP_LEVEL Not used Not used MAP_PARENT_DISPLAYMAPID ID of the parentdisplay map From Admin user on GUI MAP_NAME Name of this map or locationFrom Admin user on GUI MAP_IMAGE Not used Not used XLOC1 X position onparent map From Admin user on GUI YLOC1 Y position on parent map FromAdmin user on GUI WIDTH Image width in pixels From Admin user on GUIHEIGHT Image height in pixels From Admin user on GUIThis table stores all the information of the disabled locations in thesystem.

TABLE 15 Location_OutletCluster_Link table FIELD NAME Description HowObtained DisplayMapID Link to DisplayMaps table From Admin user on GUIOutletClusterID Link to OutletCluster table From Admin user on GUILinks all the locations to outletclusters for ease of filtering

TABLE 16 MREnvMon_Poll_Data table FIELD NAME Description How Obtained IDAn ID assigned by the system System Identity Column Poll_DateTime Lasttimestamp these values were System assigned valid MREnvMonID Link toMREnvMon table System assigned MREnvMon_ADC_Count ADC count on the CDUFrom CDUStores all of the polling data for Environmental Monitors

TABLE 17 MRInfeed_Poll_Data table FIELD NAME Description How Obtained IDAn ID assigned by the System Identity system Column Poll_DateTime Lasttimestamp these System assigned values were valid MRInfeedID Link toMRInfeed table System assigned MRInfeed_Load_Value Infeed Load on theCDU From CDU MRInfeed_Voltage Infeed Voltage on the CDU From CDUMRInfeed_Power Infeed Power on the CDU From CDU WattHours CalculatedWatts used for System Assigned this particular data recordStores all the polling data for Infeeds.

TABLE 18 MROutlet_Poll_Data table FIELD NAME Description How Obtained IDAn ID assigned by the System Identity system Column Poll_DateTime Lasttimestamp these System assigned values were valid MROutletID Link toMROutlet table System assigned MROutlet_Load_Value Outlet Load on theCDU From CDU WattHours Calcuated Watts used for System Assigned thisparticular record MROutlet_Power Outlet Power on the CDU From CDUStores all the polling data for Outlets.

TABLE 19 MRSystem_Poll_Data table FIELD NAME Description How Obtained IDAn ID assigned by the system System Identity Column Poll_DateTime Lasttimestamp these values were System assigned valid MRSystemID Link toMRSystem table System assigned MRSystem_Watts_Per_Unit_Area Watts perunit area on the CDU From CDU MRSystem_Total_Power Total power on theCDU From CDUStores all the polling data for the system table.

TABLE 20 MRTempHumid_Poll_Data table FIELD NAME Description How ObtainedID An ID assigned by the system System Identity Column Poll_DateTimeLast timestamp these values were System assigned valid MRTempHumidIDLink to MRTempHumid table System assigned MRTempHumid_Temp_ValueTemperature on the CDU From CDU MRTempHumid_Humid_Value Humidity on theCDU From CDUStores all the polling data for the temperature humidity probes.

TABLE 21 MRTower_Poll_Data table FIELD NAME Description How Obtained IDAn ID assigned by the System Identity system Column Poll_DateTime Lasttimestamp these System assigned values were valid MRTowerID Link toMRTower table System assigned MRTowerStatusID Tower Status on the CDUFrom CDUStores all the polling data for the towers.

TABLE 22 Racks table FIELD NAME Description How Obtained RackID An IDassigned by the system System Identity Column RackName Name of the Rackor Cabinet From Admin user on GUI Rack_Parent_DisplaymapID Link to theDisplayMaps table From Admin user on GUI XLoc1 X Position of cabinet onthe parent From Admin user on GUI map YLoc1 Y Position of cabinet on theparent From Admin user on GUI map Total_Sq_Ft Total Square feet thiscabinet From Admin user on GUI represents Slots Number of slots or(Units) this From Admin user on GUI cabinet hasStores all the information about the rack and where it is.

TABLE 23 Settings table FIELD NAME Description How Obtained Setting Nameof setting From Admin user on GUI Value Value of the setting From Adminuser on GUIMisc system settings stored here.

TABLE 24 SysChange table FIELD NAME Description How Obtained SettingName of the setting From Admin user on GUI, telnet or serial connectionsValue Value of the setting From Admin user on GUI, telnet or serialconnectionsMisc system settings used by all internal programs stored here.

TABLE 25 T_DisplayView table FIELD NAME Description How Obtained ViewIDID of a view Configured during install representation or external setupprocess Description Name to be used Configured during install for theGUI display or external setup process for the view ToolTip Extrainformation to Configured during install be displayed on a or externalsetup process tooltip Order Order of display that Configured duringinstall can override normal or external setup process sortingList of system views that are supported by the main view screen.

TABLE 26 T_DisplayViewItems table FIELD NAME Description How ObtainedViewItemID ID of the View item Configured during install or externalsetup process ViewID Link to the T_DisplayView Configured during installtable or external setup process Description Text to display on theConfigured during install legend or external setup process Start Startvalue of the item Configured during install category or external setupprocess End End value of the item Configured during install category orexternal setup process Color Color this item will be Configured duringinstall displayed as or external setup process Order Order of displaythat can Configured during install override normal sorting or externalsetup processThe categories each system view will use to determine that view's datameasurement will belong to. Each category will indicate a color and textto be displayed to the user.

TABLE 27 T_EnvMonStatus table FIELD NAME Description How ObtainedEnvMonStatusID ID from CDU MIB CDU MIB StatusText Text of the status CDUMIB StatusLevel Not used yet Not used yetEnvironmental Monitor statuses.

TABLE 28 T_ManualAdd table FIELD NAME Description How ObtainedManualAddID An ID assigned by the system System Identity ColumnIPAddress IP Address of the CDU From Admin user on GUI Comm_PublicPublic community string of the From Admin CDU user on GUI Comm_PrivatePrivate community string of the From Admin CDU user on GUI FTP_UsernameFTP user name to use to get the From Admin config binary off the CDUuser on GUI FTP_Password FTP password to use to get the From Adminconfig binary off the CDU user on GUIA temporary holding place for manually added devices. These entries willbe repeatedly submitted to the discovery table until the device issuccessfully managed.

TABLE 29 T_TowerStatus table FIELD NAME Description How ObtainedTowerStatusID ID from CDU MIB CDU MIB StatusText Text of the status CDUMIB StatusLevel Not used yet Not used yetCDU Tower status table.

TABLE 30 User_Location_Access_Link table FIELD NAME Description HowObtained UserID A link to the Users table where From Admin UserGroupID:= UserID user on GUI DisplayMapID Link to the DisplayMaps table FromAdmin user on GUIUserGroup Access restriction table.

TABLE 31 User_Outlet_Access_Link table FIELD NAME Description HowObtained UserID A link to the Users table where From Admin UserGroupID:= UserID user on GUI OutletID Link to the MROutlet table From Adminuser on GUIUserGroup Access restriction table.

TABLE 32 User_OutletCluster_Access_Link table FIELD NAME Description HowObtained UserID A link to the Users table where From Admin UserGroupID:= UserID user on GUI OutletClusterID Link to the OutletCluster tableFrom Admin user on GUIUserGroup Access restriction table.

TABLE 33 User_Rack_Access_Link table FIELD NAME Description How ObtainedUserID A link to the Users table where From Admin UserGroupID := UserIDuser on GUI RackID Link to the Rack table From Admin user on GUIUserGroup Access restriction table.

TABLE 34 User_System_Access_Link table FIELD NAME Description HowObtained UserID A link to the Users table where From Admin UserGroupID:= UserID user on GUI SystemID Link to the MRSystem table From Adminuser on GUI

TABLE 35 Userlogins table FIELD NAME Description How ObtainedUSERLOGINID An ID assigned System Identity Column by the system USERNAMEThe logon name Created by the Admin User via the GUI USERPASSWORD Thelogon's Updated by the user via encrypted password the GUI USERGROUPID Alink to the Created by the Admin Users table where User via the GUIUserGroupID := UserID HOMEMAPID A link to the GUI via the UserDisplayMaps tableAll user logons for the system with their preferred home map id andpasswords encrypted.

TABLE 36 Users table FIELD NAME Description How Obtained USERID An IDgiven to Created by the system the user group USERNAME Really a userCreated by the Admin group name User via the GUI USERCAPABILITIESID Afield to hold Created by the Admin any special User via the GUIcapabilities of this user group like permission levels HOMEMAPID A linkto the GUI via the user DisplayMaps tableThis is the Usergroup table as of version 3.1 with all the user groupsand the default home map id in it.

TABLE 37 ActionLog table FIELD NAME Description How Obtained ALOGID AnID given to the user group Created by the system USERNAME Login name orsystem name that System assigned performed the logged action ACTION_TIMETime of the logged action System assigned USER_IP IP address of the userperforming System assigned the action ACTION_TYPE Type of action Systemassigned OBJECT_PK ID of Object logged System assigned OBJECT_TYPE Typeof Object logged System assigned ACTION_MSG Formatted message of the logSystem assignedThe system and user action logs are stored here.

TABLE 38 Keys table FIELD NAME Description How Obtained KEY Usersoftware activation key Created by the Admin User via the GUI APPLIEDTimestamp it was applied to the Created by the Admin system User via theGUIA list of all submitted software keys in the system.A list of views is provided in List 1.

R_CDUByLocation

R_EnvMons

R_Towers

V_AllDisplayMaps

V_CDUEnvSensors

V_CDUManagedData

V_CDUOutlets

V_CDUOutletsWithSecurity

V_DisplayViewData

V_DisplayViewDataWithSecurity

V_EnvironmentalMonitors

V_EnvironmentalMonitorsWithSecurity

V_InfeedPowerByCDUDetailedPerDay

V_InfeedPowerByCDUDetailedPerMonth

V_InfeedPowerByCDUDetailedPerYear

V_InfeedPowerByCDUPerDau

V_InfeedPowerByCDUPerDay

V_InfeedPowerByCDUPerMonth

V_InfeedPowerByCDUPerYear

V_InfeedPowerByLocationPerDay

V_InfeedPowerByLocationPerMonth

V_InfeedPowerByLocationPerYear

V_InfeedPowerByRackPerDay

V_InfeedPowerByRackPerMonth

V_InfeedPowerByRackPerYear

V_InfeedPowerData

V_InfeedPowerDataByCDUPerMonth

V_Items

V_ItemsWithSecurity

V_OutletPowerByCDUDetailedPerDay

V_OutletPowerByCDUDetailedPerMonth

V_OutletPowerByCDUDetailedPerYear

V_OutletPowerByCDUPerDay

V_OutletPowerByCDUPerMonth

V_OutletPowerByCDUPerYear

V_OutletPowerByClusterDetailedPerDay

V_OutletPowerByClusterDetailedPerMonth

V_OutletPowerByClusterDetailedPerYear

V_OutletPowerByClusterPerDay

V_OutletPowerByClusterPerMonth

V_OutletPowerByClusterPerYear

V_OutletPowerByLocationPerDay

V_OutletPowerByLocationPerMonth

V_OutletPowerByLocationPerYear

V_OutletPowerByRackPerDay

V_OutletPowerByRackPerMonth

V_OutletPowerByRackPerYear

V_OutletPowerData

V_OutletPowerDataByClusterPerDay

V_OutletPowerDataByClusterPerMonth

V_OutletPowerDataByClusterPerYear

V_Outlets

V_Search

V_SearchCriteria

V_SymbolList

V_SystemEditSelect

V_SYSTEMSTATUS

List 1

As described above, a graphical user interface may include one or moredepictions of geographical locations to show the locations of variousCDUs in a given power distribution system. The interface may furtherprovide photographs of these various locations in whatever degree ofdetail may be desired by users of the power management system. Suchphotographs may depict one or more equipment racks including icons toindicate rack status. Both a geographic location and a depiction of arack may be color-coded or may include a color-coded icon based onstatus.

Information from one or more tables, for example the SYSTEM, TOWER,INFEED and OUTLET tables, may be used to provide a listing of towers orother PDUs, infeeds and outlets associated with a selected rack. Foreach infeed and outlet, a status is provided. Load, voltage and powerreadings are provided for an infeed. Hyperlinks for turning each outletON or OFF, and for REBOOTing, are also provided. The tower, infeed andoutlets may each be configured with a custom name as specified by auser.

A user may view a summary of statuses of various devices in a system.For example, an “alarms” listing may be generated from the tables toshow which elements of the system are not in a normal status and todescribe the nature of the abnormality. In similar fashion, a user maybe provided with a listing of environmental conditions at various onesof the CDUs.

A user may also view a listing of clusters together with any desiredinformation about each cluster. As with other listings, a clusterlisting may give the user various command options such as “Turn On alloutlets in the cluster”, “Turn Off all outlets in the cluster”, or“Reboot”.

Information from the tables, for example the TREND table, may be used toillustrate trends between starting and ending dates and times ofinterest. The user may select the type of trend data to be viewed, suchas temperature, humidity, infeed load, infeed voltage, infeed power,system watts per unit area of a location or a cabinet, or total systempower usage.

The embodiments described above may be implemented using varioussoftware and hardware resources. Typically, however, a power managersuch as the RPM 102 and database 112 will be implemented by means ofcomputer-readable program code stored on computer-readable media. Thecomputer-readable media may include, for example, any number or mixtureof fixed or removable media (such as one or more fixed disks, randomaccess memories (RAMs), read-only memories (ROMs), or compact discs), ateither a single location or distributed over a network. The computerreadable code will typically comprise software, but could also comprisefirmware or a programmed circuit.

Those of skill will appreciate that the various illustrative logicalblocks, modules, circuits, and algorithm steps described in connectionwith the embodiments disclosed herein may be implemented as electronichardware, computer software, firmware, or combinations thereof. Toclearly illustrate this interchangeability, various illustrativecomponents, blocks, modules, circuits, and steps have been describedabove generally in terms of their functionality. Whether suchfunctionality is implemented as hardware, software, and/or firmwaredepends upon the particular application and design constraints imposedon the overall system. Skilled artisans may implement the describedfunctionality in varying ways for each particular application, but suchimplementation decisions should not be interpreted as causing adeparture from the scope of the present invention.

For a hardware implementation, the processing units may be implementedwithin one or more application specific integrated circuits (ASICs),digital signal processors (DSPs), digital signal processing devices(DSPDs), programmable logic devices (PLDs), field programmable gatearrays (FPGAs), processors, controllers, micro-controllers,microprocessors, electronic devices, other electronic units designed toperform the functions described herein, or a combination thereof. For afirmware and/or software implementation, the methodologies may beimplemented with modules (e.g., procedures, functions, and so on) thatperform the functions described herein.

FIG. 18 is a block diagram of an exemplary computing system 1610 capableof implementing one or more of the embodiments described and/orillustrated herein. Computing system 1610 broadly represents any singleor multi-processor computing device or system capable of executingcomputer-readable instructions. Examples of computing system 1610include, without limitation, workstations, laptops, client-sideterminals, servers, distributed computing systems, handheld devices, orany other computing system or device. In its most basic configuration,computing system 1610 may comprise at least one processor 1614 and asystem memory 1616.

Processor 1614 generally represents any type or form of processing unitcapable of processing data or interpreting and executing instructions.In certain embodiments, processor 1614 may receive instructions from asoftware application or module. These instructions may cause processor1614 to perform the functions of one or more of the exemplaryembodiments described and/or illustrated herein. For example, processor1614 may perform and/or be a means for performing, either alone or incombination with other elements, one or more of the identifying,transmitting, receiving, determining, selecting, and using stepsdescribed herein. Processor 1614 may also perform and/or be a means forperforming any other steps, methods, or processes described and/orillustrated herein.

System memory 1616 generally represents any type or form of volatile ornon-volatile storage device or medium capable of storing data and/orother computer-readable instructions. Examples of system memory 1616include, without limitation, random access memory (RAM), read onlymemory (ROM), flash memory, or any other suitable memory device.Although not required, in certain embodiments computing system 1610 maycomprise both a volatile memory unit (such as, for example, systemmemory 1616) and a non-volatile storage device (such as, for example,primary storage device 1632, as described in detail below).

In certain embodiments, exemplary computing system 1610 may alsocomprise one or more components or elements in addition to processor1614 and system memory 1616. For example, computing system 1610 maycomprise a memory controller 1618, an Input/Output (I/O) controller1620, and a communication interface 1622, each of which may beinterconnected via a communication infrastructure 1612. Communicationinfrastructure 1612 generally represents any type or form ofinfrastructure capable of facilitating communication between one or morecomponents of a computing device. Examples of communicationinfrastructure 1612 include, without limitation, a communication bus(such as an ISA, PCI, PCIe, or similar bus) and a network.

Memory controller 1618 generally represents any type or form of devicecapable of handling memory or data or controlling communication betweenone or more components of computing system 1610. For example, in certainembodiments memory controller 1618 may control communication betweenprocessor 1614, system memory 1616, and I/O controller 1620 viacommunication infrastructure 1612. In certain embodiments, memorycontroller may perform and/or be a means for performing, either alone orin combination with other elements, one or more of the steps or featuresdescribed and/or illustrated herein, such as identifying, transmitting,receiving, determining, selecting, and using.

I/O controller 1620 generally represents any type or form of modulecapable of coordinating and/or controlling the input and outputfunctions of a computing device. For example, in certain embodiments I/Ocontroller may control or facilitate transfer of data between one ormore elements of computing system 1610, such as processor 1614, systemmemory 1616, communication interface 1622, display adapter 1626, inputinterface 1630, and storage interface 1634. I/O controller 1620 may beused, for example, to perform and/or be a means for performing, eitheralone or in combination with other elements, one or more of theidentifying, transmitting, receiving, determining, selecting, and usingsteps described herein. I/O controller 1620 may also be used to performand/or be a means for performing other steps and features set forth inthe instant disclosure.

Communication interface 1622 broadly represents any type or form ofcommunication device or adapter capable of facilitating communicationbetween exemplary computing system 1610 and one or more additionaldevices. For example, in certain embodiments communication interface1622 may facilitate communication between computing system 1610 and aprivate or public network comprising additional computing systems.Examples of communication interface 1622 include, without limitation, awired network interface (such as a network interface card), a wirelessnetwork interface (such as a wireless network interface card), a modem,and any other suitable interface. In at least one embodiment,communication interface 1622 may provide a direct connection to a remoteserver via a direct link to a network, such as the Internet.Communication interface 1622 may also indirectly provide such aconnection through, for example, a local area network (such as anEthernet network), a personal area network, a telephone or cablenetwork, a cellular telephone connection, a satellite data connection,or any other suitable connection.

In certain embodiments, communication interface 1622 may also representa host adapter configured to facilitate communication between computingsystem 1610 and one or more additional network or storage devices via anexternal bus or communications channel. Examples of host adaptersinclude, without limitation, SCSI host adapters, USB host adapters, IEEE1694 host adapters, SATA and eSATA host adapters, ATA and PATA hostadapters, Fibre Channel interface adapters, Ethernet adapters, or thelike. Communication interface 1622 may also allow computing system 1610to engage in distributed or remote computing. For example, communicationinterface 1622 may receive instructions from a remote device or sendinstructions to a remote device for execution. In certain embodiments,communication interface 1622 may perform and/or be a means forperforming, either alone or in combination with other elements, one ormore of the identifying, transmitting, receiving, determining,selecting, and using steps disclosed herein. Communication interface1622 may also be used to perform and/or be a means for performing othersteps and features set forth in the instant disclosure.

Computing system 1610 may also comprise at least one display device 1624coupled to communication infrastructure 1612 via a display adapter 1626.Display device 1624 generally represents any type or form of devicecapable of visually displaying information forwarded by display adapter1626. Similarly, display adapter 1626 generally represents any type orform of device configured to forward graphics, text, and other data fromcommunication infrastructure 1612 (or from a frame buffer, as known inthe art) for display on display device 1624.

Exemplary computing system 1610 may also comprise at least one inputdevice 1628 coupled to communication infrastructure 1612 via an inputinterface 1630. Input device 1628 generally represents any type or formof input device capable of providing input, either computer or humangenerated, to exemplary computing system 1610. Examples of input device1628 include, without limitation, a keyboard, a pointing device, aspeech recognition device, or any other input device. In at least oneembodiment, input device 1628 may perform and/or be a means forperforming, either alone or in combination with other elements, one ormore of the identifying, transmitting, receiving, determining,selecting, and using steps disclosed herein. Input device 1628 may alsobe used to perform and/or be a means for performing other steps andfeatures set forth in the instant disclosure.

Exemplary computing system 1610 may also comprise a primary storagedevice 1632 and a backup storage device 1633 coupled to communicationinfrastructure 1612 via a storage interface 1634. Storage devices 1632and 1633 generally represent any type or form of storage device ormedium capable of storing data and/or other computer-readableinstructions. For example, storage devices 1632 and 1633 may be amagnetic disk drive (e.g., a so-called hard drive), a floppy disk drive,a magnetic tape drive, an optical disk drive, a flash drive, or thelike. Storage interface 1634 generally represents any type or form ofinterface or device for transferring data between storage devices 1632and 1633 and other components of computing system 1610.

In certain embodiments, storage devices 1632 and 1633 may be configuredto read from and/or write to a removable storage unit configured tostore computer software, data, or other computer-readable information.Examples of suitable removable storage units include, withoutlimitation, a floppy disk, a magnetic tape, an optical disk, a flashmemory device, or the like. Storage devices 1632 and 1633 may alsocomprise other similar structures or devices for allowing computersoftware, data, or other computer-readable instructions to be loadedinto computing system 1610. For example, storage devices 1632 and 1633may be configured to read and write software, data, or othercomputer-readable information. Storage devices 1632 and 1633 may also bea part of computing system 1610 or may be a separate device accessedthrough other interface systems.

In certain embodiments, the exemplary file systems disclosed herein maybe stored on primary storage device 1632, while the exemplaryfile-system backups disclosed herein may be stored on backup storagedevice 1633. Storage devices 1632 and 1633 may also be used, forexample, to perform and/or be a means for performing, either alone or incombination with other elements, one or more of the identifying,transmitting, receiving, determining, selecting, and using stepsdisclosed herein. Storage devices 1632 and 1633 may also be used toperform and/or be a means for performing other steps and features setforth in the instant disclosure.

Many other devices or subsystems may be connected to computing system1610. Conversely, all of the components and devices illustrated need notbe present to practice the embodiments described and/or illustratedherein. The devices and subsystems referenced above may also beinterconnected in different ways from that shown. Computing system 1610may also employ any number of software, firmware, and/or hardwareconfigurations. For example, one or more of the exemplary embodimentsdisclosed herein may be encoded as a computer program (also referred toas computer software, software applications, computer-readableinstructions, or computer control logic) on a computer-readable medium.The phrase “computer-readable medium” generally refers to any form ofdevice, carrier, or medium capable of storing or carryingcomputer-readable instructions. Examples of computer-readable mediainclude, without limitation, transmission-type media, such as carrierwaves, and physical media, such as magnetic-storage media (e.g., harddisk drives and floppy disks), optical-storage media (e.g., CD- orDVD-ROMs), electronic-storage media (e.g., solid-state drives and flashmedia), and other distribution systems.

The computer-readable medium containing the computer program may beloaded into computing system 1610. All or a portion of the computerprogram stored on the computer-readable medium may then be stored insystem memory 1616 and/or various portions of storage devices 1632 and1633. When executed by processor 1614, a computer program loaded intocomputing system 1610 may cause processor 1614 to perform and/or be ameans for performing the functions of one or more of the exemplaryembodiments described and/or illustrated herein. Additionally oralternatively, one or more of the exemplary embodiments described and/orillustrated herein may be implemented in firmware and/or hardware. Forexample, computing system 1610 may be configured as an applicationspecific integrated circuit (ASIC) adapted to implement one or more ofthe exemplary embodiments disclosed herein.

FIG. 19 is a block diagram of an exemplary network architecture 1700 inwhich client systems 1710, 1720, and 1730 and servers 1740 and 1745 maybe coupled to a network 1750. Client systems 1710, 1720, and 1730generally represent any type or form of computing device or system, suchas exemplary computing system 1610. Similarly, servers 1740 and 1745generally represent computing devices or systems, such as applicationservers or database servers, configured to provide various databaseservices and/or to run certain software applications. Network 1750generally represents any telecommunication or computer network;including, for example, an intranet, a wide area network (WAN), a localarea network (LAN), a personal area network (PAN), or the Internet.

As illustrated, one or more storage devices 1760(1)-(N) may be directlyattached to server 1740. Similarly, one or more storage devices1770(1)-(N) may be directly attached to server 1745. Storage devices1760(1)-(N) and storage devices 1770(1)-(N) generally represent any typeor form of storage device or medium capable of storing data and/or othercomputer-readable instructions. In certain embodiments, storage devices1760(1)-(N) and storage devices 1770(1)-(N) may representnetwork-attached storage (NAS) devices configured to communicate withservers 1740 and 1745 using various protocols, such as NFS, SMB, orCIFS.

Servers 1740 and 1745 may also be connected to a storage area network(SAN) fabric 1780. SAN fabric 1780 generally represents any type or formof computer network or architecture capable of facilitatingcommunication between a plurality of storage devices. SAN fabric 1780may facilitate communication between servers 1740 and 1745 and aplurality of storage devices 1790(1)-(N) and/or an intelligent storagearray 1795. SAN fabric 1780 may also facilitate, via network 1750 andservers 1740 and 1745, communication between client systems 1710, 1720,and 1730 and storage devices 1790(1)-(N) and/or intelligent storagearray 1795 in such a manner that devices 1790(1)-(N) and array 1795appear as locally attached devices to client systems 1710, 1720, and1730. As with storage devices 1760(1)-(N) and storage devices1770(1)-(N), storage devices 1790(1)-(N) and intelligent storage array1795 generally represent any type or form of storage device or mediumcapable of storing data and/or other computer-readable instructions.

In certain embodiments, and with reference to exemplary computing system1617, a communication interface, such as communication interface 1622,may be used to provide connectivity between each client system 1710,1720, and 1730 and network 1750. Client systems 1710, 1720, and 1730 maybe able to access information on server 1740 or 1745 using, for example,a web browser or other client software. Such software may allow clientsystems 1710, 1720, and 1730 to access data hosted by server 1740,server 1745, storage devices 1760(1)-(N), storage devices 1770(1)-(N),storage devices 1790(1)-(N), or intelligent storage array 1795. Althoughthe figure depicts the use of a network (such as the Internet) forexchanging data, the embodiments described and illustrated herein arenot limited to the Internet or any particular network-based environment.

In at least one embodiment, all or a portion of one or more of theexemplary embodiments disclosed herein may be encoded as a computerprogram and loaded onto and executed by server 1740, server 1745,storage devices 1760(1)-(N), storage devices 1770(1)-(N), storagedevices 1790(1)-(N), intelligent storage array 1795, or any combinationthereof. All or a portion of one or more of the exemplary embodimentsdisclosed herein may also be encoded as a computer program, stored inserver 1740, run by server 1745, and distributed to client systems 1710,1720, and 1730 over network 1750. Accordingly, network architecture 1700may perform and/or be a means for performing, either alone or incombination with other elements, one or more of the identifying,transmitting, receiving, determining, selecting, and using stepsdisclosed herein. Network architecture 1700 may also be used to performand/or be a means for performing other steps and features set forth inthe instant disclosure.

As detailed above, computing system 1610 and/or one or more of thecomponents of network architecture 1700 may perform and/or be a meansfor performing, either alone or in combination with other elements, oneor more steps of the exemplary methods described and/or illustratedherein. For example, a computer-implemented method for determining afile set may comprise identifying a file set. The method may alsocomprise identifying a key file for the file set. A first computingsystem may comprise the file set. The method may further comprisetransmitting a key-file identifier to a second computing system, thekey-file identifier identifying the key file. The first computing systemmay receive the first and second file identifiers from the secondcomputing system. The first file identifier may be associated with afirst file-identifier set. The second file identifier may be associatedwith a second file-identifier set. The key-file identifier may beassociated with both the first file-identifier set and the secondfile-identifier set. The method may comprise determining whether thefile set comprises a file identified by the first file identifier, andwhether the file set comprises a file identified by the second fileidentifier. The first computing system may transmit a result of thedetermination to the second computing system.

In certain embodiments, identifying a file set may comprise selecting afile directory, selecting a group of files within a directory, selectingfiles associated with a computer program, and selecting a plurality offiles contained on a file storage device. In an additional embodiment,the key file may be a randomly selected file within the file set.

In at least one embodiment, determining a file set may further compriseidentifying a set of key files from the file set. The first computingsystem may comprise the file set. Determining a file set may furthercomprise transmitting a set of key-file identifiers to the secondcomputing system, wherein each key-file identifier in the set ofkey-file identifiers identifies a file in the set of key files. Themethod may also comprise receiving a plurality of file identifiers fromthe second computing system, wherein each file identifier in theplurality of file identifiers is associated with a differentfile-identifier set. The first computing system may determine whichfiles identified by the plurality of file identifiers are containedwithin the file set.

In certain embodiments, the key-file identifier may comprise at leastone of a file name of the key file, a version number of the key file,and a hash of the key file. The key-file identifier may also comprise afile size of the key file, a name of a directory where the key file isstored on the first computing system, and a system identifier for thefirst computing system.

In additional embodiments, wherein each of receiving the first andsecond file identifiers, determining whether the file set comprises thefiles identified by the first and second identifiers, and transmittingthe result of the determination may be repeated. The aforementionedsteps are repeated until the result provides the second computing systemwith enough information to identify the file set or the first computingsystem receives an unknown-file-set indication. In a further embodimentthe result of the determination may comprise a system identifier for thefirst computing system, the key-file identifier, the first fileidentifier, and/or the second file identifier.

A computer implemented method for determining a file set may comprisereceiving a key file identifier from a first computing system, the keyfile identifier identifying a key file associated with the file set. Thesecond computing system may also identify first and secondfile-identifier sets associated with the key file. The method furthercomprises identifying a first file identifier in the firstfile-identifier set, and identifying a second file identifier in thesecond file-identifier set. The second computing system may transmit thefirst and second file identifiers to the first computing system. Themethod also comprises receiving a result from the first computingsystem, the result being based on a comparison of the first and secondfile identifiers with the file set. The second computing system may usethe result to identify the file set.

In an additional embodiment, a computer implemented method fordetermining a file set may comprise a file-set database. The file-setdatabase may comprise at least one of a table of file names, a table offile versions, a table of file hashes, a table of file directories, atable of file sets, a table of associations of files to file sets. Incertain embodiments, identifying a first and second file identifier forthe first and second file identifier set may comprise determining thatthe first file identifier is not in the second file-identifier set anddetermining that the second file identifier is not in the firstfile-identifier set.

In certain embodiments, a computer implemented method for determining afile set may further comprise receiving a set of key-file identifiersfrom the first computing system. The method may also compriseidentifying a plurality of file-identifier sets associated with the setof key files, and identifying file identifiers associated with theplurality of file-sets. In a further embodiment, an identifier for thekey file may comprise at least one of a file name of the key file, aversion number of the key file, a hash of the key file, a file size ofthe key file, a name of a directory where the key file is stored on thefirst computing system. In an additional embodiment, the result maycomprise a system identifier for the first computing system, thekey-file identifier, the first file identifier, the second fileidentifier.

In certain embodiments, wherein identifying the first and second fileidentifiers for the first and second file set, transmitting the firstand second file to the first computing system, and receiving a result isrepeated. The aforementioned method is repeated until the resultcontains enough information to identify the file set or the resultcontains data that exceeds a file-set-identifier threshold. In a furtherembodiment the file-set-identifier threshold may comprise a ratio of thenumber of total file identifiers transmitted to the first computingsystem. The file-set-identifier threshold may also comprise the numberof file sets associated with the key file and a number of transmissionsbetween the first computing system and the second computing system,where the transmissions contain information to identify the file set. Inan additional embodiment, an unknown-file-set indication is transmittedto the first computing system.

In an additional embodiment, the key-file identifier is transmitted tothe first computing system. In a further embodiment, identifying thefile set from the result may comprise identifying a file-identifier setcontaining the identifier for the key file and identifying afile-identifier set containing a file identifier transmitted in theresult.

In certain embodiments, a computer-readable medium may comprise one ormore computer executable instructions that, when executed by a computingsystem, cause the computing system to identify a file set; identify akey file for the file set, a first computing system comprising the fileset; transmit a key-file identifier to a second computing system, thekey-file identifier identifying the key file; receive first and secondfile identifiers from the second computing system, a first fileidentifier being associated with a first file-identifier set, a secondfile identifier being associated with a second file-identifier set, andthe key-file identifier being associated with both the firstfile-identifier set and the second file-identifier set; determine atleast one of whether the file set comprises a file identified by thefirst file identifier and whether the file set comprises a fileidentified by the second file identifier; transmit a result of thedetermination to the second computing system;

In an additional embodiment, one or more computer-executableinstructions, when executed by the computing device, further cause thecomputing device to identify a set of key files from the file set, thefirst computing system comprising the file set, transmit a set ofkey-file identifiers to the second computing system, wherein eachkey-file identifier in the set of key-file identifiers identifies a filein the set of key files, receive a plurality of file identifiers fromthe second computing system, wherein each file identifier in theplurality of file identifiers is associated with a differentfile-identifier set, determine which files identified by the pluralityof file identifiers are contained within the file set.

While the foregoing disclosure sets forth various embodiments usingspecific block diagrams, flowcharts, and examples, each block diagramcomponent, flowchart step, operation, and/or component described and/orillustrated herein may be implemented, individually and/or collectively,using a wide range of hardware, software, or firmware (or anycombination thereof) configurations. In addition, any disclosure ofcomponents contained within other components should be consideredexemplary in nature since many other architectures can be implemented toachieve the same functionality.

The process parameters and sequence of steps described and/orillustrated herein are given by way of example only and can be varied asdesired. For example, while the steps illustrated and/or describedherein may be shown or discussed in a particular order, these steps donot necessarily need to be performed in the order illustrated ordiscussed. The various exemplary methods described and/or illustratedherein may also omit one or more of the steps described or illustratedherein or include additional steps in addition to those disclosed.

Furthermore, while various embodiments have been described andillustrated herein in the context of fully functional computing systems,one or more of these exemplary embodiments may be distributed as aprogram product in a variety of forms, regardless of the particular typeof computer-readable media used to actually carry out the distribution.The embodiments disclosed herein may also be implemented using softwaremodules that perform certain tasks. These software modules may includescript, batch, or other executable files that may be stored on acomputer-readable storage medium or in a computing system. In someembodiments, these software modules may configure a computing system toperform one or more of the exemplary embodiments disclosed herein.

The preceding description has been provided to enable others skilled inthe art to best utilize various aspects of the exemplary embodimentsdisclosed herein. This exemplary description is not intended to beexhaustive or to be limited to any precise form disclosed. Manymodifications and variations are possible without departing from thespirit and scope of the instant disclosure. The embodiments disclosedherein should be considered in all respects illustrative and notrestrictive. Reference should be made to the appended claims and theirequivalents in determining the scope of the instant disclosure.

Unless otherwise noted, the terms “a” or “an,” as used in thespecification and claims, are to be construed as meaning “at least oneof.” In addition, for ease of use, the words “including” and “having,”as used in the specification and claims, are interchangeable with andhave the same meaning as the word “comprising.”

A system architecture that embodies the principles of the inventionmakes possible the collection of power information at the individualoutlet, CDU, group and cluster level and the placing of this informationinto a database.

Power (for example in kilowatts) and power consumption (for example inkilowatt-hours) can be provided in many different ways, including forexample per cabinet, per row of cabinets, per multiple rows of cabinets,per data center or multiple data centers, per device or application, oreven per outlet. This information is collected over a network and storedwithin a database, for example as described above. The collection periodmay be defined by a user. The information can made the subject of atrend analysis, a log, a report, a billing invoice, or the like. Theinformation can be exported to a building management system (BMS) or anyother system in a data center environment.

The information and control provided by embodiments of the invention canbe used, for example, by a data center operator to associate andallocate or trend power data to individual users, departments orapplications. Billing can be accomplished per data center, per serverowner, per application or even according to the time of day. In anenterprise data center an individual department (for example, theaccounting department) can be billed for the cost of their applicationrunning within their own datacenter. In a co-location facility,customers call be billed for the power usage of just their deviceswithin a shared rack. An enterprise data center can schedule workaccording to the cost per kW depending on the time of day.

A business entity can measure energy efficiency to meet requirementsthat may be imposed by government agencies, for example as discussed inAppendices B through G.

Monitoring and logging outlet power data can identify abnormal powersupply behavior, so the affected IT assets can be identified forpreventive maintenance actions to reduce downtime. For example, a largespike in current draw could be used to inform a user that a power supplyhas failed or is about to fail.

It has been estimated that as many as 20% of all installed servers areunder-utilized or not performing active work; embodiments of theinvention enables a user to identify these IT assets and turn them off,improving data center utilization and reducing energy costs. Also, theability to reclaim under-utilized assets has the potential to defer therequirement to construct new data center facilities, significantlyreducing capital expenditures. Virtualization applications such asVM-Ware allow applications to be moved to under-utilized servers,allowing servers to be powered-off in off-peak hours.

Efficiency can also be improved by using power consumption data tooperate each server at its optimal efficiency (this is sometimes calledthe “sweet spot”). Current drawn by a server can also indicate that areboot is required.

IT asset information (power, environmental, etc.) can be exported to abuilding manager or building management system. In a typical data centerthere are two primary consumers of power: the infrastructure thatprovides cooling, generators, uninterruptible power, and the like; andthe IT assets such as servers, routers, network storage, and the like.To achieve maximum efficiency power data are needed respecting both ofthese consumers. By collecting and logging all outlet power data andwriting this information to the power manager database, this informationcan be exported to the building management system using BMS networkssuch as MODBUS, BACnet, or the like.

As shown in FIG. 20, two Power Distribution Units (PDUs) 1801 and 1802may be grouped under a single IP address. In the embodiment shown, thisis accomplished by a cable 1803 between the two PDUs. In otherembodiments, more than two PDUs may be grouped under a single IPaddress. One group can encompass, for example, a plurality of outletsserving one device, or one application (several devices), or a cabinet,particularly if only two PDUs are installed in the cabinet.

As shown in FIG. 21, a first plurality of PDUs 1901 and 1902 are groupedtogether to form a group 1903 under a single IP address. Similarly, asecond plurality of PDUs 1904 and 1905 form a group 1906 under a singleIP address, a third plurality 1907 and 1908 form a group 1909, and afourth plurality 1910 and 1911 form a group 1912. Two or more of thesegroups 1903, 1906, 1909 and 1912 in turn can form a cluster. Outlets canbe clustered in many ways, for example within a cabinet, across severalcabinets or several rows of cabinets, in a single data center, acrossmultiple data centers, for one device or application or a plurality ofapplications.

A screen shot as shown in FIG. 22 illustrates an embodiment of theinvention. A screen frame generally 3001 encloses a window area 3003 onthe top and left sides. The frame 3001 includes a horizontal bar 3005across the top of the screen and a vertical bar 3007 along the left sideof the screen.

The horizontal bar 3003 includes a tab 3009 for selecting a CabinetDistribution Unit (“CDU”), a tab 3011 for Reports, a tab 3013 forConfiguration, a tab 3015 for Help and a tab 3017 for Views.

The vertical bar 3007 along the left side of the screen indicates thestatus 3019 and access level 3021 of a user, which are “admin” and“administrator” respectively in the depicted screen shot. Next is astatus indicator window 3023 showing how many monitored locations are ineach possible state, for example critical, warning, unreachable, normal,and maintenance. In the depicted screen shot, one location is incritical status, three are in warning status, none are unreachable, sixare in normal status, and none are in maintenance.

A “select a view” control 3024 enables a user to bring up a view ofdesired data, for example power load in amps per outlet, location, CDU,cabinet, or the like; power load in watts; temperature or humidity,including current, highest or lowest readings; power capacity,indicating how much power is being used compared with how much isavailable and whether another server or other device can be powered inthe same cabinet.

Below the status indicator window is a search window 3025 into which auser can enter a search criterion. At the bottom of the bar is a logoutbutton 3027 and a “home view” button 3029 for displaying apreviously-selected background image.

The window area 3003 depicts a world map generally 3031 with a location3033 of a power distribution unit being monitored by a power managementsystem embodying the principles of the invention. In the figure, theindicated location is in the United States, but it will be apparent thatother locations could be depicted. A “location” control 3034 allows achoice of a map of the entire world, a region of the world, a country, astate or province, a locality, or the like as desired. The selected mapwill then display locations of any system PDUs within the regiondepicted by the map.

Below the world map is a color legend 3035 indicating which colors areassociated with each state. For example one color could be used todepict critical status, another to depict warning status, and othercolors for unreachable, normal, or maintenance status. A symbols legend3037 includes a circle to indicate a location, a triangle to indicate acabinet, and a rectangle to indicate a CDU. Thus, a triangle in redmight indicate a cabinet in critical status whereas a rectangle in greenmight indicate a CDU in normal status.

The Views tab 3017 provides at-a-glance monitoring of data centerlocations, CDUs and cabinets using colored icons. The CDU tab 3009allows editing of CDUs, outlets, environmental monitors and groups andclusters. The Reports tab 3011 allows generation of user-defined trendand log reports. The Configuration tab 3013, which may also be titled“setup and configuration”, provides custom configuration of the overallpower management system, including discovery of networked CDUs. The Helptab 3015 gives various kinds of information such as contact information,links to a vendor website, updates of software keys, etc.

The user can select various tables or other information for viewing inthe window area. For example, in the screen shot shown in FIG. 23, atable 3039 is displayed in the window area 3003. The table 3039 depictswhat could be either a group or a cluster named “Motors” and having anIP address 66.214.208.94. “Motors” has three outlets: Device_(—)2,Device_(—)3 and Device_(—)4. For each outlet, the load, power, status,system name and system IP address are given. In this instance, all threeoutlets are “off” so they have N/A load and power. All three areidentified with the same system name and IP address. At the lower leftof the window is a user-operable control 3041 that enables the user toturn all the outlets on or off or to reboot. At the lower right of thewindow is a user-operable control 3043 to apply or cancel whateverchanges have been made to the table 3039.

In a similar manner, other information can be displayed in the windowarea 3003, for example:

name, IP address, status, location (cabinet), and NIC serial number foreach item having a status indication; a user can set or removemaintenance mode for any item;

environmental monitor readings from various sensors, for exampletemperature and humidity;

infeed names and outlet names for each enclosure;

status, load, power, voltage, control state, and the like for each CDUor enclosure, together with a control for a user to initiate action withrespect to any or all outlets;

a list of CDU names with IP addresses, SNMP Get and Set (for example,“public” or “private”), cabinet names, locations, and similarinformation;

a list of outlets, CDUs, cabinets, clusters or locations with provisionfor a user to testreboot, testreg, or testview for any or all listeditems;

for a selected outlet or outlets, the outlet name, identification,status, control state, capacity in amps, load in amps, voltage, activepower in watts, apparent power in volt-amps, crest factor, and powerfactor. Each listing can have a “details” tab by which a user canrequest more details respecting a particular outlet;

power monitoring of input feeds, for example separately for each CDU orPDU, including status of the input feed, input load, input voltage, andinput power being drawn. The input load and power may be cumulative, forexample by phase or branch;

power monitoring of a facility by area, expressed as total powerconsumed for an area or as power consumer per unit of area (such as persquare meter); and

graphical displays of trends, such as a graph indicating any oftemperature, humidity, other environmental indicators, power usage, andany other data being monitored by the power management system; suchgraphical displays may be used to correlate amongst the plottedquantities.

In the window area a user, for example an administrator, can be offered:

a “Configure LDAP Options” workspace with user inputs for LDAP, primaryhost, secondary host, port, whether to use TLS/SSL, bind type, searchbind DN, search bind password, user search base DN, user search filter,group membership attribute, group membership value type, authenticationorder, and the like.

an “Add New Location” workspace with user inputs for name and filename,together with a list of location names and images, and a provision forenabling or deleting each entry;

an “Add New User or Change Password” workspace with user inputs for nameand password and group identification of a new user and a list of usernames together with their respective groups and a provision for deletingany;

a “Configure E-Mail Delivery of Selected SPM Logs” workspace with userinputs for SMTP Host Name or IP address, SMPT port, e-mail From address,primary and secondary e-mail To addresses, and selections of logcategories to send via e-mail such as discovery status, user logons,user actions, and alarm status;

a “Setup a Discovery” workspace with user inputs for discovery startingand ending IP addresses, SNMP Get and Set community strings, FTP username and password, and Initiate and Cancel CDU Discovery controlbuttons;

a first “Add New Cabinet” workspace with user inputs for name, area, andlocation, provision for a list of cabinets and an option to delete anyof them, and a second “Add New Cabinet” workspace with user inputs forIP address, SNMP Get and Set community strings, FTP user name andpassword, and an Add CDU control button;

an “Add New Group or Change Type” workspace with user inputs for nameand type, such as regular user, admin user, view-only user, andreboot-only user, and a list of existing groups with provisions forchanging type or deleting any of them;

a “Enter Report Parameters” workspace with user inputs for report type,billing level, location being reported on (any or all), start and enddates, and format, and a “generate report” control;

a “View Trends” workspace with user inputs for start and end dates andtrend type, and a “view trends” control button;

a workspace that includes a system host name entry; for each of aplurality of network ports, an IP address, a subnet mask, a gateway anda selection of obtaining an IP address automatically or by manual entryor disabling the port adapter; and a web port entry; and

a workspace that enables a user to set load thresholds per outlet, perPDU, per CDU, etc., and to request an automatic alert by SNMP trap ore-mail if a threshold is exceeded.

In the window area, a user can display a report. The user can select adate or a range of dates. The report can display a list of user namesand for each an IP address, an event time giving date, hour, minute andsecond, and a description of what happened. Some examples of eventdescriptions include:

user logged out;

user successfully logged in;

user login failed: invalid credentials;

IP address X is unreachable;

IP address X is removed from warning/critical state;

IP address X entered warning/critical state;

system contains 1 tower, 1 infeed, 8 outlets, 2 environmental sensorsand zero outlet groups; and

discovery process completed for IP addresses X through Y: systemsdiscovered and successfully added: 2 systems discovered but already inthe system, zero systems discovered but not added successfully.

Under the “reports” tab 3017, a user can select, for example, “billing”,“reports”, “trends” or “logs”. Logs in turn could be, for example,“discovery”, “user login”, “user actions”, and “alarm status”.

A power management system embodying principles of the invention includesone or more Cabinet Distribution Units (CDUs) each having a plurality ofoutlets having monitoring circuitry and facilities as described above.Thus, one or more Power Distribution Units (PDUs) located in oneequipment rack are together considered as a CDU. This configurationenables rack level power management, input and outlet power monitoring,grouping of outlets, environmental monitoring, and generation of alarms.The CDUs communicate via the Internet with a power management appliance,for example a computer server with a database. The server may in turncommunicate with a Building Management System (BMS). Through anInternet-based interface, the power management system providesenterprise cabinet power management, reports and trends, devicemonitoring, grouping and clustering of outlets, alarms, kilowattreadings for billing, and auto-discovery of CDUs.

There may be one or many equipment racks in a given physical location.Typically, the PDUs in each rack might be assigned to one CDU, althougha CDU might also include PDUs in more than one rack, or more than oneCDU might be associated with a single rack. The CDUs in one physicallocation might be given one or several IP addresses.

A server in a rack might be designed to draw power from two differentpower supplies. Two PDUs might be used and the server might connect toone or more outlets in each PDU for its power. Each PDU might containtemperature and humidity sensors, an IP connection and a serialconnection either of which might be used for outlet control, and a linkport.

IP access can be accomplished by web interface, SSL, SSH, Telnet, SNMP &RS-232 access, 10/100 Base T-Ethernet, SSLv3/TLSv1, SNMPv2, TACACS+,LDAP, LDAPS, RADIUS, DHCP, SMTP/Email, Syslog, and the like.

A power management system embodying aspects of the invention isillustrated in FIG. 24. A first equipment cabinet 2401 houses components2403, 2405, 2407, 2409, 2411 and 2413. Also in the cabinet are a firstCDU 2415 and a second CDU 2417. The CDUs are shown outside of, andlarger than, the cabinet for convenience. Each CDU is similar to the CDUdepicted in FIG. 3. The component 2403 is shown both installed within,and outside of, the cabinet. The component 2403 draws power from bothCDUs as indicated by a cord 2419 connecting the component 2403 to anoutlet in the first CDU 2415 and a cord 2421 connecting the component2403 to an outlet in the second CDU 2417. Others of the components maybe connected to one or both of the CDUs as desired.

Similarly, a second equipment cabinet 2423 houses various components andone or more CDUs that provide power to these components. The system mayinclude other equipment cabinets having more or fewer components or CDUsthan depicted in the drawing.

The CDUs in the various cabinets communicate, for example through anEthernet pipeline 2425 or through the Internet or some other suitablemedium, with a server 2427. The server 2427 includes a database 2429which may be stored in a memory, or on a magnetic disk or other medium.The database 2429 may be located in one place or distributed as desired.In some embodiments the server 2429 communicates with another systemsuch as a Building Management System 2431.

Various views of the system and various reports from individual outletlevel to overall system level as described above may be generated anddisplayed, for example in a window area 2433 enclosed by a frame 2435similar to those described above and illustrated in FIGS. 22 and 23.

As discussed previously, various electrical parameters respecting one ormore of the outlets may be measured and used in managing powerthroughout the system. Current flow through each outlet, voltage presentat the outlets, power factor, phase, power line frequency, and the likemay all be measured and the measurements communicated to the server forpresentation to a user or for preparing reports, generating messages,providing trends, and the like.

Attached hereto as Appendices B through G are reports illustratingapplication for which embodiments of the invention can be adapted (thereis no Appendix A). Appendix B is a report by the EnvironmentalProtection Agency titled “EPA Report on Server and Data Center EnergyEfficiency”. Appendix C is a “Report to Congress on Server and DataCenter Energy Efficiency” by the Environmental Protection Agency.Appendix D is a report titled “Four Metrics Define Data CenterGreenness”. Appendix E is a report titled “Existing Metrics, Guidelinesand Programs Affecting Data Center and IT Energy Efficiency”. Appendix Fis a report titled “The Green Grid Metrics: Data Center InfrastructureEfficiency (DCIE) Detailed Analysis”. Appendix G is a report titled“Qualitative Analysis of Power Distribution Configurations for DataCenters”.

The foregoing subject matter, including the content of some of theappendices, address the concept of Power Usage measurements for a datacenter as a whole. There may be granularity divided between ‘cooling’and ‘power load’. However, these broad metrics do not allow the datacenter operator to dig below the surface.

The data center operator requires an ability to collect power data(Power Usage measurement) in a very granular manner. For example: byequipment cabinet, by application, by user department, by business unit,and so on. Once this data is available in a granular form, the datacenter operator can provide reports that may change behavior withindepartment, within business units, etc.

Power Usage measurements have been provided by equipment cabinet.Grouping of this data written to the SPM Database as set forth aboveallows Power Usage report to be generated by groups of servers within acabinet. Clustering allows this Power Usage data to consolidated bygroups of servers across multiple cabinets. And it allows Power Usage tobe measured by groups of servers installed in multiple data centers. Forexample an email service of a large enterprise may embody multipleservers, installed in multiple data centers across the United States oreven across the world.

The ability to group or cluster Power Usage measurements in the SPM database provides the data center operator a new level of granularity tomeasure the Department that owns the email service and to point outthrough trending and logging how Power Usage can be reduced.

PIPS, POPs and SPM are the instrumentation, monitoring tools andrecording tools that will permit a data center operator to improveeffectiveness at the cabinet level, at the dedicated client serverlevel, at the organization level and at the business unit level.

The phrase “Per Outlet Power Sensing” (“POPS”) refers to the concept ofmonitoring power consumption at each outlet as discussed above. With anInternet interface, monitoring power consumption at each outlet providesdetailed power information and allows grouping of outlets to determinekilowatt consumption per device, group of devices, CDU, or cabinet.Power consumption can also be determined per rack, rows of racks, anentire data center, or the like by clustering outlet information acrossmultiple IP addresses and CDUs, as discussed above. This can provideconsolidated CDU information within a data center or across multiplelocations, a centralized location to view power and environmentalstatus, capacity planning, reports and trends, multiple views, autodiscovery of all CDU devices, alarm details, an ability to manage CDUs,global or individual outlet control, and logging.

Partial List of Points of Novelty

The invention includes many unique aspects and points of novelty, asdisclosed in the foregoing specification and drawings. A partial list ofthese points of novelty includes the following. However, this list isnot all-inclusive. Other points of novelty also exist. This list is notintended to limit the scope of the invention in any way. The inventionis limited only by the claims. This list does not qualify or limit theclaims in any way.

1) A CDU with power sensing circuitry including current transformertoroids that sense the AC current flowing through a conductor to eachoutlet. of the CDU, a voltage sense circuit that senses line voltage,and a processor that receives signals from the toroids and voltage sensecircuit to compute apparent power, RMS power, power factor, and/or otherpower related information.

2) A CDU comprising two or more printed circuit boards with alignedcontacts that each provide separate functionality, the CDU assembledwith PCBs selected based on the desired functionality. The PCBs areassembled such that the appropriate contacts are lined up to provide athe desired functionality when fewer than all of the PCBs are requiredfor a particular CDU functionality.

3) A CDU having an intelligent power module with a microprocessor and acircuit that senses line frequency of the power input. Clock drift inthe microprocessor clock due to temperature fluctuations is correctedusing the input power frequency sense.

4) A CDU having functional circuitry associated with each of a pluralityof outputs, the functional circuitry included on a printed circuit boardthat is oriented at about 90 degrees relative to the plane of theexterior side of the plurality of outputs.

5) A system comprising a power manager, and a cabinet distribution unit(CDU), the CDU comprising (a) a plurality of outputs each comprising acurrent sense circuit, (b) a voltage sense circuit, and (c) a powerreporting circuit that provides power related information for eachoutput of the PDU to the power manager, the power manager receiving thepower related information and adjusting the power consumption of one ormore components that receive power from the PDU.

6) A system comprising a power manager and a CDU, the CDU comprising (a)a plurality of outputs and (b) a power reporting circuit that providespower related information for each output of the CDU to the powermanager, the power manager receiving power related information from atleast two outputs at two different CDUs related to one component thatreceives power from the at least two outputs and compiling the powerrelated information to determine power related information for thecomponent.

7) A system comprising a power manager and a CDU, the CDU comprising (a)a plurality of outputs, and (b) a power reporting circuit that providespower related information for each output of the CDU to the powermanager, the power manager receiving power related information from atleast two outputs at two different CDUs related to one component thatreceives power from the at least two outputs and compiling the powerrelated information to determine power related information for thecomponent.

8) A system comprising a power manager and a CDU, the CDU comprising (a)a plurality of outputs, and (b) a power reporting circuit that providespower related information for each output of the CDU to the powermanager, the power manager receiving power related information from atleast two outputs from two or more CDUs related to an application thatis running on two or more components that receive power from the atleast two outputs and compiling the power related information todetermine power related information for the application.

9) A power management system that provides assigning each outlet in anyone location to a cabinet distribution unit in that location. At leastone unique IP address may be associated with each location having one ormore CDUs. If there are several CDUs at a given location, each may get aseparate IP address or a single IP address may be used for some or allof the CDUs at that location. Collecting power usage data respecting anoutlet may be accomplished by communicating via the Internet with the IPaddress associated with the CDU containing that outlet.

10) A power management system with the ability to collect and providetrends related to components that receive power from one or moreoutputs, trends including power, temperature, humidity, and the abilityto set triggers if limit thresholds are exceeded.

11) System that provides billing for power consumption for one or morediscreet power consuming components within a data center.

12) Power management system that identifies low utilization ornon-utilized servers and initiates the shut-down of these servers.

13) Power management system that identifies an optimal operatingcondition for a discrete component, such as a server, that receivespower from a CDU, and identifies one or more components that are lessthan optimal.

14) A method of managing electrical power including collecting powerusage data indicative of electrical current flow through each of aplurality of electrical outlets, displaying the power usage data to auser, receiving a user-initiated command to control current flow throughany outlet selected by the user, and controlling current flow throughthe selected outlet responsive to the command. Controlling current flowthrough an outlet may mean turning the outlet on or off. The user mayinitiate a command to reboot control circuitry associated with one ormore of the outlets. Data indicative of environmental conditions, suchas temperature and humidity, of the electrical outlets may be collectedand displayed. A log of events and a report descriptive of a power usagetrend may be generated. Outlets may be assigned to CDUs and an IPaddress may be associated with one or more CDUs. A CDU status, forexample critical, changed, normal, no data, maintenance, or snooze maybe displayed, as may a graphical depiction of locations of CDUs.Available infeed power may be displayed. A message may be sentautomatically if a defined event, for example a temperature or humiditylevel is reached, a set amount of electrical power is used at a locationor by one or more CDUs or even a single outlet.

15) Outlets in different CDUs having different IP addresses may beclustered, thereby allowing a user to view the status of, and tocontrol, all outlets in the cluster.

16) A power management database structure having one or more of thetables listed above.

17) Power and power consumption data can be provided per cabinet, perrow of cabinets, per multiple rows of cabinets, per data center ormultiple data centers, per device or application, per outlet or in anyother desired manner. This information can be used for trend analyses,logs, reports, billing invoices, or the like. The information can beexported to a building management system (BMS) or any other system in adata center environment.

18) A data center operator can associate and allocate or trend powerdata to individual users, departments or applications. Billing can beaccomplished per data center, per server owner, per application or timeof day. An individual department can be billed for the cost of theirapplication. Customers can be billed for the power usage of just theirdevices within a shared rack. Work can be scheduled according to thecost per kW depending on the time of day.

19) A business entity can measure energy efficiency to meet requirementsthat may be imposed by government agencies.

20) Abnormal power supply behavior can be identified. This facilitatespreventive maintenance.

21) Applications can be moved to under-utilized servers. Virtualizationapplications such as VM-Ware allow servers to be powered-off in off-peakhours. IT assets not being used can be identified and turned off. Theability to reclaim under-utilized assets can avoid or defer constructionof new data center facilities.

22) Power consumption data can also be used to help operate each serverat its optimal efficiency and reboot if needed.

23) IT asset information (power, environmental, etc.) can be exported toa building manager or building management system, enabling assets to bemanaged more efficiently by collecting and logging all outlet power dataand writing this information to the power manager database. Powermanagement information can be exported to the building management systemusing BMS networks such as MODBUS, BACnet, or the like,

The previous description of the disclosed embodiments is provided toenable any person skilled in the art to make or use the presentinvention. Various modifications to these embodiments will be readilyapparent to those skilled in the art, and the generic principles definedherein may be applied to other embodiments without departing from thespirit or scope of the invention. Thus, the present invention is notintended to be limited to the embodiments shown herein but is to beaccorded the widest scope consistent with the principles and novelfeatures disclosed herein.

From the foregoing, it will be appreciated that specific embodiments ofthe invention have been described herein for purposes of illustration,but that various modifications may be made without deviating from thescope of the invention. Accordingly, the invention is not limited exceptas by the appended claims.

We claim:
 1. A power management system, comprising: a communicationsinterface that sends/receives communications to/from a plurality ofpower distribution units (PDUs), the communications received from thePDUs including power usage data for each of a plurality of electricaloutlets within each PDU; a memory that stores information related toelectrical components that receive power from a group of electricaloutlets, including information related to at least a first electricalcomponent that receives power from at least a first and a secondelectrical outlet of the group of electrical outlets, the first outletlocated at a first PDU and the second outlet located at a second PDU; acontroller interconnected to the communications interface and memorythat receives the power usage data from the PDUs, determines power thatis consumed by one or more of the electrical components, and outputsinformation related to power that is consumed by at least the firstelectrical component based on aggregated power usage data from both thefirst and second PDUs.
 2. A power management system as in claim 1,wherein the communications interface sends/receives communicationsto/from the PDUs through TCP/IP with a unique IP address for each PDU.3. A power management system as in claim 1, wherein the controller isfurther in communication with the PDUs through the communicationsinterface to control current flow through one or more selected outlets.4. A power management system as in claim 1, wherein the communicationsinterface communicates with the first and second PDUs through differentIP addresses.
 5. A power management system as in claim 1, wherein thecontroller determines power that is consumed by the first electricalcomponent by combining power usage data for the first and second outletsof the first and second PDUs.
 6. A power management system as in claim1, wherein the memory comprises information related to at least a firstapplication that runs on a plurality of electrical components thatreceive power from a plurality of different PDUs.
 7. A power managementsystem as in claim 6, wherein the communications interface communicateswith the plurality of PDUs through different IP addresses.
 8. A powermanagement system as in claim 6, wherein the controller determines powerthat is consumed by the plurality of electrical components that arerunning the first application by combining power usage data for aplurality of power outlets of the plurality PDUs that provide power tothe plurality of electrical components associated with the firstapplication.
 9. A power management system as in claim 1, wherein thememory comprises: a system table structured for data descriptive of apower distribution system; a tower table structured for data descriptiveof outlets, PDUs and other elements in the power distribution system; aninfeed table structured for data descriptive of electrical powerprovided to the PDUs; and an outlet table structured for datadescriptive of electrical power flowing through various outlets.
 10. Apower management system as in claim 9, wherein the communicationsinterface receives communications related to one or more environmentalsensors located in one or more PDUs, and the memory further comprises anenvironmental table structured for data descriptive of environmentalparameters associated with the environmental sensors.
 11. A powermanagement system as in claim 9, wherein the memory further comprises aclusters table structured for data descriptive of outlet clusters thatinclude outlets located in two or more different PDUs.
 12. A powermanagement system as in claim 9, wherein the memory further comprises aclusters table structured for data descriptive of outlet clusters thatinclude outlets located in two or more different PDUs that provide powerto one electrical component or one application.
 13. A power managementsystem as in claim 11, wherein the clusters table comprises a tablestructured for cluster identifiers, and a table structured for datacorrelating outlets with clusters.
 14. A power management system,comprising: a communications interface that sends/receivescommunications to/from a plurality of power distribution units (PDUs)including a first PDU, the communications received from the PDUsincluding power usage data for each of a plurality of electrical outletswithin each PDU; a memory that stores information related to electricalcomponents that receive power from a group of electrical outlets,including information related to at least a first electrical componentthat receives power from at least a first and a second electrical outletof the group of electrical outlets, the first outlet located at a firstphase group of the first PDU the second outlet located at a second phasegroup of the first PDU; a controller interconnected to thecommunications interface and memory that receives the power usage datafrom the first PDU, determines power that is consumed by one or more ofthe electrical components, and outputs information related to power thatis consumed by at least the first electrical component based onaggregated power usage data from both the first and second phase groupsof the first PDU.
 15. A power management system as in claim 14, whereinthe controller determines power that is consumed by the first electricalcomponent by combining power usage data for the first and second outletslocated at the first and second phase groups of the first PDU.
 16. Apower management system as in claim 14, wherein the communicationsinterface sends/receives communications to/from the PDUs through TCP/IPwith a unique IP address for each PDU.